ルークの列または空のスペース、あるいはその両方の位置が与えられた場合、いくつの異なるルークの動きが可能なかを出力します。ルークは左または右に空のスペースに移動できますが、別のルークを通過する必要があるスペースには移動できません。ルークが移動しても、他のルークはそのまま残ります。
たとえば、この位置から、6つの移動が可能です。
.R..RRR.
- 最初の(左端の)ルークは、左に1スペース、または右に1または2スペース移動できます(3移動)
- 次のルークは、左に1つまたは2つのスペースしか移動できません(2つの移動)
- 3番目のルークは、他の2つのルークの間で圧迫されているため、まったく移動できません(0移動)
- 最後のルークは右に1スペースしか移動できません(1移動)
ポジションにはルークがまったくないか、空のスペースがまったくないことに注意してください。
入力:ルークと空のスペースの空ではないリスト(文字列、配列など)。それらは、True
/ False
、1
/ 0
、'R'
/ '.'
、または任意の2つの一貫した異なるシングルバイト文字または1桁の数字として表すことができます。どれがルークを意味し、どれが空きスペースを意味するかはあなた次第です。
出力:負でない整数。整数の浮動小数点数でも問題ありません。
テストケース
出力は左側の数字です。
6 .R..RRR.
0 .
0 R
4 R..RR
3 ...R
8 ..R..R..
0 ......
より多くのテストケースについては、長さ5までのすべての入力があります。
0 .
0 R
0 ..
1 .R
1 R.
0 RR
0 ...
2 ..R
2 .R.
1 .RR
2 R..
2 R.R
1 RR.
0 RRR
0 ....
3 ...R
3 ..R.
2 ..RR
3 .R..
3 .R.R
2 .RR.
1 .RRR
3 R...
4 R..R
3 R.R.
2 R.RR
2 RR..
2 RR.R
1 RRR.
0 RRRR
0 .....
4 ....R
4 ...R.
3 ...RR
4 ..R..
4 ..R.R
3 ..RR.
2 ..RRR
4 .R...
5 .R..R
4 .R.R.
3 .R.RR
3 .RR..
3 .RR.R
2 .RRR.
1 .RRRR
4 R....
6 R...R
5 R..R.
4 R..RR
4 R.R..
4 R.R.R
3 R.RR.
2 R.RRR
3 RR...
4 RR..R
3 RR.R.
2 RR.RR
2 RRR..
2 RRR.R
1 RRRR.
0 RRRRR