Time Limit: 15 sec / Memory Limit: 1024 MB
背景
Xはある回転寿司屋で一人で寿司を握っています。
今日はXの知人人が、回転寿司屋に訪れて食事をします。Xは知人の顔を知らず、さらに客が見えない場所にいますが、知人はSNSに自分の食べる寿司の写真を逐一アップロードするので、Xはそれを見ることで、知人の座っている席をだいたい特定したいと考えました。知人は回写真をアップロードします。
Xは、特定したい知人に関係無く、決まった長さの寿司の列を流し続けます。番目の知人が着席した瞬間、その目の前には寿司列の番目の寿司が来るとします(この寿司を知人が取るとは限りません)。
また、Xはすでにいる他の客を何人か追い出すことで、それぞれの寿司が知人によって取られる確率を操作することができます。
もちろん客を追い出すと店の評判が落ちるので、寿司列をうまく決め、できるだけ評判が落ちないように知人の位置を特定してください。
問題文
この問題はインタラクティブです。が与えられるので、長さの文字列と、実数を決めてください。ジャッジはから個のクエリを生成します。 番目のクエリに対し、ジャッジがを、0以上N未満の整数から一様乱数にしたがって選びます。このとき文字列は以下の擬似コードにより決定されます。
for (pos = ; .length < M; pos++) 確率 で、 の末尾に を付け足す return
各についてを推定してください。
各テストケースの得点および、この問題の得点は、次のように計算されます。
- 各について、の推定値をとしたとき、スコアは以下の数式により計算されます。
- は以下のようなグラフになります。
- は以下のようなグラフになります。
- 1個のテストケースの得点は、各のスコアの合計を小数点以下切り上げした値になります。
- テストケースは全部で10個あります。各テストケースの得点の合計が、この問題の得点になります。
- なお、スコアの計算に用いられる変数は64ビットの浮動小数点数表現なので、微小な誤差が発生することをご理解ください。
入出力
入力は以下の形式で標準入力から与えられます。
初めに、以下のような入力が与えられます。
- はの文字数を表す整数で、 を満たします。
- はの文字数を表す整数で、 を満たします。
- はクエリの個数を表す整数で、 を満たします。
この入力に対し、とを以下の形式で出力してください。
- は長さの文字列で、半角英小文字からなります。
- は以上以下の実数です。
その後、以下のような入力が与えられます。
:
- は、文字の文字列です。
各に対し、を以下の形式で出力してください。
:
- は、 を満たす整数です。
- 出力を終えたら、プログラムを終了してください。
- 出力の後には必ず改行し、flush してください。
- ジャッジプログラムの都合上、個のをすべて読み取った後にの出力を始めてください。
入出力例
プログラムへの入力 | プログラムの出力 | 説明 |
---|---|---|
13 7 2 |
が与えられます。この値はテストケースの制約を満たさないことに注意してください。 | |
nosushinolife 1.8 |
nosushinolife を出力します。の文字数はです。 |
|
osushin nolifos |
が生成され、与えられます。長さはそれぞれです。 | |
1 7 |
を出力します。これらは以上未満でなければなりません。 であった場合、スコアは、
≒
≒ のように計算され、このケースの得点は、 ≒を小数点以下切り上げして点となります。 |
テスター
テスターを次のリンクから提供しています。