AT_pakencamp_2025_day3_n Complete Set
Description
**この問題はインタラクティブな問題です。**
$ X $ 種類のアクリルスタンドを売る物販があります。はじめ、 $ i $ 種類目のアクリルスタンドは $ A_i $ 個の在庫があります。
これから、 $ N $ 人の客が来ます。客は以下の $ 2 $ 種類いるので、順に処理してください。
- 単品で購入する人。在庫のうちどれか $ 1 $ つ選んで売ってください。
- コンプリートセットを購入する人。すべての種類のアクリルスタンドを $ 1 $ 個ずつ売ってください。
ただし、在庫がなく売れない場合はその事を報告してください(在庫があるのに売れないと報告することは許されません)。また、**過去の売り方を変えていればその客に売れるような場合があってはいけません。**
### Input & Output Format
最初に、 $ X,N,A $ が標準入力から与えられます。
> $ X $ $ N $ $ A_1 $ $ A_2 $ $ \dots $ $ A_X $
次に、ちょうど $ N $ 回、以下に示す客とのやりとりを繰り返してください。
まず、正整数 $ T $ が与えられます。
> $ T $
ここで、 $ T $ は $ -1 $ または $ 1 $ または $ 2 $ で、
- $ T=1 $ のとき、単品を買う客が来たことを表します。
- $ T=2 $ のとき、コンプリートセットを買う客が来たことを表します。
- $ T=-1 $ のとき、これまでのやりとりが形式に沿っていないことを表します。
- このとき、プログラムはすでに不正解と判定されています。ただちにプログラムを終了してください。
単品を買う客が来た場合、 $ -1 $ または $ 1 $ 以上 $ X $ 以下の整数 $ s $ を出力してください。
> $ s $
$ -1 $ を出力した場合、売れないと報告したことを表します。このとき、実際には売れる場合、または過去の売り方を変えていれば売れた場合、形式に沿っていないと判定されます。
それ以外の場合、 $ s $ 種類目のアクリルスタンドを売ったことを表します。 $ s $ 種類目のアクリルスタンドの在庫がない場合、形式に沿っていないと判定されます。
コンプリートセットを買う客が来た場合、 $ -1 $ または $ 1 $ である整数 $ c $ を出力してください。
> $ c $
$ -1 $ を出力した場合、売れないと報告したことを表します。このとき、実際には売れる場合、または過去の売り方を変えていれば売れた場合、形式に沿っていないと判定されます。
$ 1 $ を出力した場合、全種類のアクリルスタンドを売ったことを表します。在庫のないアクリルスタンドの種類がある場合、形式に沿っていないと判定されます。
$ N $ 人の客に対処すると、正整数 $ J $ が与えられます。
> $ J $
ここで、 $ J $ は $ 1 $ または $ -1 $ で、
- $ J=1 $ のとき、すべての客を正しく処理できたことを表します。この後ただちにプログラムを終了することで、正解と判定されます。
- $ J=-1 $ のとき、これまでのやりとりが形式に沿っていないことを表します。
- このとき、プログラムはすでに不正解と判定されています。ただちにプログラムを終了してください。
以上の形式に沿っていない出力をした場合、`-1` が入力から与えられます。
```
-1
```
このときも、プログラムは不正解と判定されています。ただちにプログラムを終了してください。
Input Format
N/A
Output Format
N/A
Explanation/Hint
### Universal Cup参加者へ
この問題は Universal Cup に収録される際に削除されます。そのため、Universal Cup に AtCoder での結果を使用する場合はこの問題以外を先に解くことをおすすめします。
### 注意点
- **出力を行うたびに、末尾に改行を入れて標準出力をflushしてください。そうしなかった場合、ジャッジ結果が TLE となる可能性があります。**
- 解答を出力したとき、または `-1` を標準入力から受け取ったとき、ただちにプログラムを終了してください。そうしなかった場合の判定結果は不定です。
- 余計な改行は不正なフォーマットの出力とみなされることに注意してください。
- **この問題のジャッジシステムは適応的(adaptive)です。** つまり、ジャッジは過去のやり取りによって来る客の種類を変える可能性があります。
### 入出力例
$ X=3,N=5,A=(2,3,3) $ のときの対話の一例を示します。
入力 出力 説明 `3 5` 整数 $ X,N $ が標準入力から与えられます。 `2 3 3` 正整数列 $ A=(A_1,A_2,\dots,A_X) $ が標準入力から与えられます。 `1` 単品を買う客が来ます。 `2` $ 2 $ 種類目のアクリルスタンドを売ります。 `2` コンプリートセットを買う客が来ます。 `1` コンプリートセットを売ります。 `2` コンプリートセットを買う客が来ます。 `1` コンプリートセットを売ります。 `2` コンプリートセットを買う客が来ます。 `-1` コンプリートセットを売れないことを報告します。 `1` 単品を買う客が来ます。 `3` $ 3 $ 種類目のアクリルスタンドを売ります。 `1` すべての客を正しく処理できました。この後ただちにプログラムを終了することで、正解と判定されます。 これは対話の一例であることに注意してください。
### Constraints
- $ 2\leq X\leq 20 $
- $ 1\leq N\leq 2000 $
- $ 1\leq A_i\leq 100 $
- 入力はすべて整数