传统题 1000ms 256MiB

限长展栏

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题意:

一条展栏最多保留 kk 张卡片,最初为空。每张卡片上有一个正整数,数值相同的卡片也分别保留。

依次进行 qq 次操作:

  • L x:将一张写有 xx 的卡片放到最左端。如果此时超过容量,立刻移走最右端的一张卡片。
  • R x:将一张写有 xx 的卡片放到最右端。如果此时超过容量,立刻移走最左端的一张卡片。

每次操作后,输出本次移走的卡片上的整数;如果没有移走卡片,输出 00。

全部操作结束后,再输出展栏中保留的卡片。

输入格式:

第一行两个整数 kk、qq(1≤k≤2×1051 \le k \le 2\times10^5,0≤q≤2×1050 \le q \le 2\times10^5),分别表示容量和操作次数。

接下来 qq 行,每行给出一个字符 dd 和一个整数 xx(d∈{L,R}d\in\{\texttt{L},\texttt{R}\},1≤x≤1091 \le x \le 10^9),表示一次操作。

输出格式:

先输出 qq 行,依次表示每次操作移走的整数,或者 00。

最后输出一行,先输出保留的卡片数,再从左到右输出这些卡片上的整数,相邻两项之间以一个空格分隔。没有卡片时,最后一行只输出 00。

样例:

样例输入1:

3 6
R 10
L 20
R 30
L 40
R 50
R 60

样例输出1:

0
0
0
30
40
20
3 10 50 60

样例解释1:

前三次操作后,展栏为 (20,10,30)(20,10,30)。随后依次变为 (40,20,10)(40,20,10)、(20,10,50)(20,10,50)、(10,50,60)(10,50,60)。

样例输入2:

1 3
L 5
R 5
L 8

样例输出2:

0
5
5
1 8

C++ Programming Practice Round 2

未参加
状态
已结束
规则
XCPC
题目
10
开始于
2026-10-18 0:00
结束于
2026-10-25 0:00
持续时间
168 小时
主持人
参赛人数
6