AT_abc294_d.[ABC294D] Bank
普及-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
银行里有编号为 1,2,…,N 的人排队。
接下来会发生 Q 个事件。每个事件属于以下三种之一:
1:在尚未被叫号的人中,编号最小的人被叫到前台。2\ x:编号为 x 的人第一次前往前台。(此时,x 已经被叫号至少一次。)3:在已经被叫号但还未前往前台的人中,编号最小的人再次被叫到前台。
请按被叫到前台的顺序,输出每次第 3 种事件中被叫到前台的人的编号。
输入格式
输入以如下格式从标准输入读入。这里 eventi 表示第 i 个事件。
N Q
event1
event2
⋮
eventQ
每个事件的输入格式如下三种之一:
1
2\ x
3
输出格式
设输入中第 3 种事件的总数为 X,请输出 X 行。
第 i 行输出第 i 次第 3 种事件中被叫到前台的人的编号。
输入输出样例
输入#1
4 10 1 1 3 2 1 1 2 3 3 1 2 2 3
输出#1
1 2 4
说明/提示
限制条件
- 1≤N≤5×105
- 2≤Q≤5×105
- 当所有人都已被叫号时,不会发生第 1 种事件
- 对于第 2 种事件,编号为 x 的人已经被叫号至少一次
- 对于第 2 种事件,编号为 x 的人不会前往前台超过一次
- 当所有被叫号的人都已前往前台时,不会发生第 3 种事件
- 第 3 种事件至少会发生一次
- 输入的所有值均为整数
样例解释 1
对于 i=1,2,…,Q,在第 i 个事件发生前,已经被叫号但还未前往前台的人的集合如下:
- i=1:{ }
- i=2:{ 1}
- i=3:{ 1,2}
- i=4:{ 1,2}
- i=5:{ 2}
- i=6:{ 2,3}
- i=7:{ 2}
- i=8:{ 2}
- i=9:{ 2,4}
- i=10:{ 4}
第 3 种事件在 i=3,7,10 时发生,因此此时集合中编号最小的人分别为 1,2,4,应依次输出。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?