No.3120 Lower Nim
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / リアクティブ問題 (詳しくはこちら)
タグ : / 解いたユーザー数 37
作問者 :
Nzt3
/ テスター :
ponjuice
kenken714
Naru820
タグ : / 解いたユーザー数 37
作問者 :
問題文最終更新日: 2025-04-18 21:10:48
問題文
この問題はリアクティブ問題です。
長さ $N$ の整数列 $A$ があります。
あなた と ジャッジ の2人が交互に行動を行います。 先攻・後攻はあなたが選択できます。
行動では、次の一連の操作を行います。はじめ、$K=10^{100}$です。
- 整数 $x \ (1 \le x \le K)$ を選択する。
- $x \le A_i$ を満たす $i \ (1 \le i \le N)$ を選択する。
- $A_i \leftarrow A_i - x,\ K \leftarrow x$ と更新する。
適切な行動ができなくなった方が負けで、負けなかった方が勝ちです。
適切に行動して勝利してください。
制約
- $1 \le N \le 10^4$
- $1 \le A_i \le 10^4 \ (1\le i \le N)$
- $\sum _{i=1}^{N}A_i \le 10^4$
入出力
まず、整数 $N$ が与えられます。
$N$
次に、整数列 $A$ が空白区切りで $1$ 行に与えられます。
$A_1$ $A_2$ $\ldots$ $A_N$
その後、あなたは 先手・後手のどちらかを選択し、それを表す文字列 $s$ を $1$ 行に出力してください。
先攻を選択する場合は First
、後攻を選択する場合は Second
と出力してください。
$s$
この後、交互に行動を行います。
ジャッジの手番
ジャッジが操作で選択した $i,x$ が空白区切りで $1$ 行に与えられます。
$i$ $x$
その後、問題の状態を表す整数 $\mathrm{ret}$ が与えられます。
$\mathrm{ret}$
- $\mathrm{ret} = 0$ のとき操作を続行します。
- $\mathrm{ret} = -1$ のとき、あなたが敗北することを表します。プログラムを終了してください。
あなたの手番
あなたが操作で選択した $i,x$ を空白区切りで $1$ 行に出力してください。
$i$ $x$
その後、問題の状態を表す整数 $\mathrm{ret}$ が与えられます。
$\mathrm{ret}$
- $\mathrm{ret} = 1$ のとき、あなたが勝利したことを表します。プログラムを終了してください。
- $\mathrm{ret} = 0$ のとき操作を続行します。
- $\mathrm{ret} = -1$ のとき、あなたが敗北することを表します。プログラムを終了してください。
注意
- ジャッジが最適に行動することであなたが敗北することが確定した場合、ゲームが終了する前に $\mathrm{ret} = -1$ となることがあります。
- 出力のたびにflushしてください。
- 出力形式が間違っている・制約を満たさない場合、ジャッジ結果が不定になる可能性があります。
サンプル
入力 | 出力 | 説明 |
---|---|---|
2 | $N=2$ | |
1 2 | $A=(1,2)$ | |
First | 先手を選択した。 | |
2 1 | あなたは $i=2,x=1$ で操作した。 $k\leftarrow 1$ で更新される。 | |
0 | ゲームは続行される。 | |
1 1 | ジャッジは $i=1,x=1$ で操作した。 | |
0 | ゲームは続行される。 | |
2 1 | あなたは $i=2,x=1$ で操作した。 | |
1 | 現在 $A=(0,0)$ であり、これ以上の操作はできない。あなたは勝利した。 |
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。