No.2926 Botaoshi
タグ : / 解いたユーザー数 139
作問者 : 👑



問題文
横一列に並んだ 本の棒があります。
棒には左から順に棒 と番号がついており、整数 の番号がついた棒を「棒 」と呼びます。
正整数 とL
,R
,U
,.
からなる 文字の文字列 が与えられます。
あなたは一直線上に並んだ 本の棒をそれぞれ「左に倒す、右に倒す、倒さない」のいずれかの状態にすることができます。
本の棒の倒し方が以下すべての条件に従っているとき、それは正しいと呼びます。 以下の文章では、 は を満たす整数とします。
- 右に倒れている棒であって、その右隣の棒が左に倒れているものが存在しないこと。(より厳密には、棒 が右に倒れ、かつ棒 が左に倒れているような を満たす整数 が存在してはならない)
- の 番目の文字が
L
であるすべての について、棒 が左に倒れていること。 - の 番目の文字が
R
であるすべての について、棒 が右に倒れていること。 - の 番目の文字が
U
であるすべての について、棒 が倒れていないこと。 - の 番目の文字が
.
であるすべての について、棒 が「左に倒れている」、「右に倒れている」、「倒れていない」のいずれかであること。
本の棒の倒し方のうち、正しいものの総数を で割った余りを求めてください。 ただし棒の倒し方は、棒 の状態(左に倒れている、右に倒れている、倒れていない)が異なるような が存在するとき、またそのときに限り異なるとみなされます。
入力
整数 、文字列 が以下の形式で与えられます。
制約
- は 以上 以下の整数
- は
L
,R
,U
,.
からなる 文字の文字列
出力
答えを出力し、最後に改行してください。
サンプル
サンプル1
入力
3 ..L
出力
5
棒の倒し方を文字列として表現したものを、「 文字の文字列であって、以下の条件をすべて満たすもの」と定めます。この方法において、ある棒の倒し方についてその文字列表現は一意に定まります。
- 棒 が左に倒れているとき、 番目の文字は
L
であること。 - 棒 が右に倒れているとき、 番目の文字は
R
であること。 - 棒 が倒れていないとき、 番目の文字は
U
であること。
下図におけるLLL
,LUL
,ULL
,UUL
,RUL
の 通りの棒の倒し方がすべての条件を満たすので、正しい棒の倒し方です。
また、下図のような棒の倒し方は条件を満たしません。
URL
: つ目の条件に違反します(棒 が右に倒れ、かつ棒 が左に倒れています)。LUU
: つ目の条件に違反します(棒 が倒れていません)。RLR
: つ目の条件に違反(棒 が右に倒れ、かつ棒 が左に倒れています)し、さらに つ目の条件に違反します(棒 が右に倒れています)。
サンプル2
入力
6 ..L..R
出力
40
サンプル3
入力
8 .RL..U..
出力
0
棒 が右に倒れ、かつ棒 が左に倒れるように棒を倒さなければならないため、必ず つ目の条件に違反します。
サンプル4
入力
30 .....R.....U...R..L.........L.
出力
144875014
正しい棒の倒し方の数を で割った余りを出力してください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。