1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Bランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 Erlang(Beta)編
  5. 「ビームの反射」を解くために:part3 Erlang(Beta)編

Bランク・スキルチェック過去問題セットのサムネイル
「ビームの反射」を解くために:part3 Erlang(Beta)編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

「ビームの反射」では、箱の区画を移動していき、通過回数を求める必要があります。これを行ってみましょう。



箱の高さHと幅W、および箱の内部の状態が与えられます。ただし、箱は内部にはビームの移動方向がかかれており、ビームはこの指示に従います。
指示は以下の 5 種類です。
R : ビームの向きを右にする
L : ビームの向きを左にする
U : ビームの向きを上にする
D : ビームの向きを下にする
S : ビームの向きを変更せず、直進させる

この指示に従いビームが撃たれてから箱の外部に飛び出るまでにビームが箱の中の区画を通過する回数を答えてください。

なお、ビームは箱の左上の区画に対し、箱の左側の外部から箱の内部に向けて撃ちます。
そのため、最初ビームは右に向かって真っ直ぐ飛んでいます。

入力される値

入力は以下のフォーマットで与えられます。

H W
s_1
s_2
...
s_H

ここで、s_i (1 ≦ i ≦ H) は'R', 'L', 'U', 'D', 'S' の五文字からなる長さW の文字列で、箱の内部の状態を表します。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

i 行目には x_i の壁にぶつかったまたは通過した際の進行方向を出力してください。

なお、進行方向は以下のように出力してください。

* 右向き → 1 0
* 左向き → -1 0
* 上向き → 0 -1
* 下向き → 0 1


最後は改行し、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

* 1 ≦ N ≦ 10000

入力例1

3 5
SSDUR
ULSSS
LSRSU

出力例1

9

入力例2

4 4
SSSD
SLDS
SSSS
UUSL

出力例2

12

問題一覧へ戻る

ページの先頭へ戻る