Generate Arrays
题目描述
Takahashi 有一个长度为 N 的序列:A=(A1,A2,…,AN)。
A 是 (1,2,…,N) 的一个排列。
他将要执行 Q 次操作以生成 1+Q 个序列。
他令 A 为编号为 0 的序列,然后开始一系列操作。
第 i 次操作 (1≤i≤Q) 由三个整数 (ti,si,xi) 表示,并对应以下操作(参见样例输入/输出中的说明)。
当 ti=1 时,他从编号为 si 的序列中 (0≤si<i) 移除第 xi 个元素之后的元素,并以被移除的元素按原有顺序创建一个编号为 i 的新序列。
当 ti=2 时,他从编号为 si 的序列中 (0≤si<i) 移除大于 xi 的元素,并以被移除的元素按原有顺序创建一个编号为 i 的新序列。
对于长度为 L 的序列 X,X 的每个元素都属于“第 0 个元素之后的元素”。
另外,对于任意满足 L≤l 的 l,X 的没有元素属于“第 l 个元素之后的元素”。
对于 i=1,2,…,Q,求第 i 次操作 之后立即 编号为 i 的序列的长度。
输入格式
输入由标准输入给出,格式如下:
N
A1 A2 … AN
Q
t1 s1 x1
t2 s2 x2
⋮
tQ sQ xQ
输出格式
输出 Q 行。
第 i 行 (1≤i≤Q) 应包含第 i 次操作之后立即编号为 i 的序列的长度。
10
1 8 7 4 5 6 3 2 9 10
5
2 0 4
1 1 2
2 0 2
2 2 5
1 0 1
6
4
2
3
1
8
6 7 8 4 5 1 3 2
5
2 0 0
1 1 0
2 2 0
1 3 8
2 2 3
8
8
8
0
0
30
20 6 13 11 29 30 9 10 16 5 8 25 1 19 12 18 7 2 4 27 3 22 23 24 28 21 14 26 15 17
10
1 0 22
1 0 21
2 0 15
1 0 9
1 3 6
2 3 18
1 6 2
1 0 1
2 5 20
2 7 26
8
1
8
4
2
5
3
8
1
1
提示
1≤N≤2×105
1≤Ai≤N (1≤i≤N)
Ai=Aj (1≤i<j≤N)
1≤Q≤2×105
ti=1,2 (1≤i≤Q)
0≤si<i (1≤i≤Q)
0≤xi≤N (1≤i≤Q)
所有输入值均为整数。最初,Takahashi 有序列 A=(1,8,7,4,5,6,3,2,9,10),长度为 10。
他令 A=(1,8,7,4,5,6,3,2,9,10) 为编号为 0 的序列,然后开始一系列操作。
在第一次操作中,他从编号为 0 的序列中移除大于 4 的元素,即 8,7,5,6,9,10,并用这些元素创建编号为 1 的新序列。该操作之后,编号为 0 和 1 的序列分别为 (1,4,3,2) 和 (8,7,5,6,9,10)。
在第二次操作中,他从编号为 1 的序列中移除第 2 个元素之后的元素,即 5,6,9,10,并用这些元素创建编号为 2 的新序列。该操作之后,编号为 0,1,2 的序列分别为 (1,4,3,2)、(8,7) 和 (5,6,9,10)。
在第三次及随后的操作中,第 i 次操作之后编号为 0,1,2,…,i 的序列如下:
(1,2),(8,7),(5,6,9,10),(4,3)
(1,2),(8,7),(5),(4,3),(6,9,10)
(1),(8,7),(5),(4,3),(6,9,10),(2)
第 i=1,2,…,5 次操作之后编号为 i 的序列的长度分别为 6,4,2,3,1。每个结果各占一行输出。
操作可能会创建空序列。
标签: AtCoder|abc324G
来源
AtCoder|abc324G