AT_abc294_d.[ABC294D] Bank

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

银行里有编号为 1,2,…,N1, 2, \dots, N 的人排队。
接下来会发生 QQ 个事件。每个事件属于以下三种之一:

  • 1:在尚未被叫号的人中,编号最小的人被叫到前台。
  • 2\ x:编号为 xx 的人第一次前往前台。(此时,xx 已经被叫号至少一次。)
  • 3:在已经被叫号但还未前往前台的人中,编号最小的人再次被叫到前台。

请按被叫到前台的顺序,输出每次第 33 种事件中被叫到前台的人的编号。

输入格式

输入以如下格式从标准输入读入。这里 eventi\text{event}_i 表示第 ii 个事件。

N QN\ Q
event1\text{event}_1
event2\text{event}_2
⋮\vdots
eventQ\text{event}_Q

每个事件的输入格式如下三种之一:

1
2\ x
3

输出格式

设输入中第 33 种事件的总数为 XX,请输出 XX 行。
第 ii 行输出第 ii 次第 33 种事件中被叫到前台的人的编号。

输入输出样例

  • 输入#1

    4 10
    1
    1
    3
    2 1
    1
    2 3
    3
    1
    2 2
    3

    输出#1

    1
    2
    4

说明/提示

限制条件

  • 1≤N≤5×1051 \leq N \leq 5 \times 10^5
  • 2≤Q≤5×1052 \leq Q \leq 5 \times 10^5
  • 当所有人都已被叫号时,不会发生第 11 种事件
  • 对于第 22 种事件,编号为 xx 的人已经被叫号至少一次
  • 对于第 22 种事件,编号为 xx 的人不会前往前台超过一次
  • 当所有被叫号的人都已前往前台时,不会发生第 33 种事件
  • 第 33 种事件至少会发生一次
  • 输入的所有值均为整数

样例解释 1

对于 i=1,2,…,Qi=1,2,\dots,Q,在第 ii 个事件发生前,已经被叫号但还未前往前台的人的集合如下:

  • i=1i=1:{ }\lbrace\ \rbrace
  • i=2i=2:{ 1}\lbrace\ 1\rbrace
  • i=3i=3:{ 1,2}\lbrace\ 1,2\rbrace
  • i=4i=4:{ 1,2}\lbrace\ 1,2\rbrace
  • i=5i=5:{ 2}\lbrace\ 2\rbrace
  • i=6i=6:{ 2,3}\lbrace\ 2,3\rbrace
  • i=7i=7:{ 2}\lbrace\ 2\rbrace
  • i=8i=8:{ 2}\lbrace\ 2\rbrace
  • i=9i=9:{ 2,4}\lbrace\ 2,4\rbrace
  • i=10i=10:{ 4}\lbrace\ 4\rbrace

第 33 种事件在 i=3,7,10i=3,7,10 时发生,因此此时集合中编号最小的人分别为 1,2,41, 2, 4,应依次输出。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页