atcoder#ABC238H. [ABC238Ex] Removing People
[ABC238Ex] Removing People
配点 : 点
問題文
から までの番号を付けられた 人の人が、人 、人 、、人 の順に時計回りに円環状に等間隔に並んでいます。
それぞれの人が向いている方向は L
または R
のみからなる長さ の文字列 で表されます。各 に対し、 L
ならば人 は反時計回りの方向を向いており、 R
ならば人 は時計回りの方向を向いています。
以下の操作を 回繰り返します。
- 残っている人の中から等確率で一人を選び、その人から見て一番手前にいる残っている人を円環から除く。このとき、選んだ人から除かれる人までの距離と同じだけのコストがかかる。
ここで、人 から人 までの距離を以下のように定義します。
- 人 が時計回りの方向を向いている場合- ならば
- ならば
- 人 が反時計回りの方向を向いている場合- ならば
- ならば
合計コストの期待値を で求めてください(注記参照)。
注記
求める期待値は必ず有理数となることが証明できます。またこの問題の制約下では、その値を互いに素な つの整数 , を用いて と表したとき、 かつ を満たす整数 がただ一つ存在することが証明できます。この を求めてください。
制約
- は整数
- は
L
とR
のみからなる長さ の文字列
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
3
LLR
831870297
求める期待値は です。 ですので、 を出力します。
なお、例えば以下のような操作手順が考えられます。
- 人 を選ぶ。人 から見て一番手前にいる、円環に残っている人は人 であるため、人 を円環から除く。
- 人 をもう一度選ぶ。人 から見て一番手前にいる、円環に残っている人は人 であるため、人 を円環から除く。
この操作手順における合計コストは となります。
10
RRRRRRLLRR
460301586