AtCoder Regular Contest 005

B - P-CASカードと高橋君


Time limit時間制限 : 2sec / Memory limitメモリ制限 : 64MB

問題文

 高橋君は来る 727 日の土用の丑の日に備えて、高級なうなぎを通販で買うことにしました。支払いはネット銀行を通して行います。
 高橋君が利用しているネット銀行のカードの裏には、下図のような縦 9 文字 ×横 9 文字の数字から成る乱数表がついています。支払う時は、この乱数表の指定された位置から縦横斜めの中で指定された向きに 4 文字連続で抜き出して入力し、それが正しいかによって本人確認を行います。
 下図は「上から 1 文字目、左から 1 文字目」の位置から「右下斜め」の方向が指定された時の 4 文字を抜き出した例です。この場合は 7930 が入力する数字になります。
図:1 行目 1 文字目から右下方向に 4 文字抜き出す例
 乱数表の一番端の文字を抜き出した後もさらに文字を抜き出す必要がある場合は、向きを変更して残りの文字を抜き出します。向きの変更は以下のように行います。

  • 読み込み時に進んでいた方向が上下左右の場合
    • 向きを 180 度変える
  • 読み込み時に進んでいた方向が斜めの場合
    • 角で向きを変更する場合
      • 向きを 180 度変える
    • 左右の端で向きを変更する場合
      • 左右への向きのみ逆にし、上下への向きはそのままにする
    • 上下の端で向きを変更する場合
      • 上下への向きのみ逆にし、左右への向きはそのままにする
 これらの向きの変更を図で示すと下図のようになる。
図:変更する向きの一覧
 乱数表、抜き出す最初の数字の位置、抜き出す向きが与えられる時、本人確認のため入力する 4 文字を答えてください。

入力

入力は以下の形式で標準入力から与えられる。
x y W
c_{11}c_{12}c_{19}
c_{21}c_{22}c_{29}
:
:
c_{91}c_{92}c_{99}
  • 入力は 10 行ある。
  • 1 行目には、抜き出す最初の数字が左から何文字目かを表す整数 x(1≦x≦9)、抜き出す最初の数字が上から何文字目かを表す整数 y(1≦y≦9)、抜き出す方向を表す W が空白で区切られて与えられる。
    • 抜き出す方向 WRLUDRURDLULD のいずれかで与えられ、抜き出す方向が以下であることを表す。
      • R : 右方向
      • L : 左方向
      • U : 上方向
      • D : 下方向
      • RU : 右上に斜め方向
      • RD : 右下に斜め方向
      • LU : 左上に斜め方向
      • LD : 左下に斜め方向
  • 2 行目からの 9 行は、乱数表の数字を表す整数 c_{ij}(1≦i,j≦9) が与えられる。
    • i 行目 j 番目の数字は、乱数表の上から i 番目、左から j 番目の数字が c_{ij} であることを表す。
    • c_{ij}0-9のいずれかである。

出力

指定された位置から指定された方向に数字を 4 文字抜き出し、それらの数字を標準出力に 1 行で出力せよ。
なお、最後には改行を出力せよ。

入力例 1

3 5 R
790319030
091076399
143245946
590051196
398226115
442567154
112705290
716433235
221041645

出力例 1

8226
  • 乱数表から抜き出す 4 文字は下図のように右方向に抜き出します。

入力例 2

8 9 LU
206932999
471100777
973172688
108989704
246954192
399039569
944715218
003664867
219006823

出力例 2

2853
  • 乱数表から抜き出す 4 文字は下図のように左上方向に抜き出します。

入力例 3

5 7 D
271573743
915078603
102553534
996473623
595593497
573572507
340348994
253066837
643845096

出力例 3

4646
  • 下図のように下方向へ 3 文字抜き出した後、向きを上方向に変えて残りの 1 文字を抜き出します。

入力例 4

2 2 LU
729142134
509607882
640003027
215270061
214055727
745319402
777708131
018697986
277156993

出力例 4

0700
  • 下図のように左上方向へ 2 文字抜き出した後、向きを右下方向に変えて残りの 2 文字を抜き出します。

入力例 5

8 7 RD
985877833
469488482
218647263
856777094
012249580
845463670
919136580
011130808
874387671

出力例 5

8878
  • 下図のように右下方向へ 1 文字抜き出した後、向きを左下方向に変えて残りの文字を抜き出します。
  • 3 文字目まで抜き出した後、さらに向きを左上方向に変えて残りの 1 文字を抜き出します。

Source name

ARC 005

Submit提出する