AT_arc226_d [ARC226D] Penta-Queue
题目描述
本题为**交互题**(你的程序需要通过输入输出与评测机进行交互)。
有五个队列,编号为 $1$ 到 $5$。初始时,所有队列均为空。
评测机会分别给你 $Q$ 次下述两种操作,每种操作各 $Q$ 次,总共 $2Q$ 次。
- **push 操作**:评测机会给你一个整数 $X$,将其添加到队列 $1$ 的末尾。每次 push 操作中给定的整数 $X$ 彼此互不相同。接着,你可以进行若干次如下的移动操作(也可以一次都不做)。
- **移动操作**:选择整数 $i,j$,满足 $1 \le i,j \le 5$,将队列 $i$ 的队首元素移除,并加入到队列 $j$ 的末尾。此处,$i$ 不能选空队列。且无须要求 $i\ne j$。
- **pop 操作**:只有在至少有一个队列非空时,评测机才会给出该操作。你需要选择一个整数 $i$,满足 $1 \le i \le 5$,此时第 $i$ 个队列必须非空,且其队首元素为当前五个队列中所有元素的最小值。随后,评测机会将该队列的队首元素移除。
你在所有操作过程中,移动操作的总次数不能超过 $10^5$。请编写程序,正确地应对所有操作。
输入格式
首先,评测机会给出一个正整数 $Q$:
> $Q$
接下来进行 $2Q$ 轮交互。每轮,评测机首先会给出一个 push 或 pop 操作。
push 操作为:
> $1\ X$
pop 操作为:
> $2$
(如果你在上一轮的输出不合法,标准输入会给出 $-1$,此时请立即正常终止程序。如果你的第 $2Q$ 个回答不合法,则之后不会再有输入。)
收到 push 操作后,假设你进行了 $k$ 次移动操作,分别选择了队列编号 $i_1,j_1,i_2,j_2,\dots,i_k,j_k$,你需依如下格式输出 $k+1$ 行,并保证每行末尾均有换行:
> $k\ i_1\ j_1\ i_2\ j_2\ \vdots\ i_k\ j_k$
收到 pop 操作时,输出你选择要弹出元素的队列编号 $i$,格式如下,并保证末尾有换行:
> $i$
输出格式
见输入格式。
说明/提示
### 交互说明
本题为交互题。
首先,评测机会以如下格式给出一个正整数 $Q$:
> $Q$
接下来进行 $2Q$ 轮交互。每轮评测机会先给出一个 push 操作或 pop 操作。
push 操作为:
> $1\ X$
pop 操作为:
> $2$
(如果你在上一轮的输出不合法,标准输入会给出 $-1$,此时请立即正常终止程序。如果你的第 $2Q$ 个回答不合法,则不会再有输入。)
收到 push 操作时,假设你执行了 $k$ 次移动操作,选择了 $i_r,j_r$(第 $r$ 次移动操作移动元素从队列 $i_r$ 到队列 $j_r$),则需输出 $k+1$ 行,格式如下,每行末尾均需换行:
> $k\ i_1\ j_1\ i_2\ j_2\ \vdots\ i_k\ j_k$
收到 pop 操作时,输出要进行弹出的队列编号 $i$,格式如下,末尾需换行:
> $i$
### 注意事项
- **每次输出回应完一条评测机的操作后,请立即刷新输出,否则有可能因输出缓冲导致 TLE。**
- **如果评测机输入了 `-1`,请立即正常终止程序。此时评测结果将为 WA,不终止则评测结果为不确定。**
- **多输出换行会被视作格式错误输出,请勿输出多余的换行。**
- 回答完所有 $2Q$ 条操作后,请立即终止程序,否则评测结果不确定。
- 本题评测数据不自适应。交互顺序、push 的 $X$ 及操作类型均在交互开始前由评测机确定。
### 样例交互
下例中,$Q=2$,评测机依次 push 入 $5, 3$。
```
2
```
$Q$ 给出。
```
1 5
```
push 操作,$X=5$,队列 $1$ 入队 5。
```
0
```
不执行移动操作。
```
1 3
```
push 操作,$X=3$,队列 $1$ 入队 3。
```
3
1 2
1 2
2 2
```
执行三次移动操作。把 $5$ 移到队列 $2$,再把 $3$ 移到队列 $2$,然后把 $2$ 队列的队首 $5$ 重新放队尾。此后,队列 $2$ 的元素由前到后为 $3,5$。
```
2
```
pop 操作。
```
2
```
选择队列 $2$,把 $3$ 弹出。
```
2
```
选择队列 $2$,把 $5$ 弹出。
### 数据范围
- $1 \le Q \le 5000$
- $1 \le X \le 10^9$
- push 操作给定的 $X$ 彼此互不相同
- push 操作与 pop 操作各 $Q$ 次
- 每次 pop 操作给出时,至少有一个队列非空
- 所有输入均为整数
由 ChatGPT 5 翻译