#4888. Generate Arrays

0

Generate Arrays

Generate Arrays

题目描述

Takahashi 有一个长度为 NN 的序列:A=(A1,A2,…,AN)A=(A _ 1,A _ 2,\ldots,A _ N)。 AA 是 (1,2,…,N)(1,2,\ldots,N) 的一个排列。 他将要执行 QQ 次操作以生成 1+Q1+Q 个序列。 他令 AA 为编号为 00 的序列,然后开始一系列操作。 第 ii 次操作 (1≤i≤Q)(1\leq i\leq Q) 由三个整数 (ti,si,xi)(t _ i,s _ i,x _ i) 表示,并对应以下操作(参见样例输入/输出中的说明)。

当 ti=1t _ i=1 时,他从编号为 sis _ i 的序列中 (0≤si<i)(0\leq s _ i\lt i) 移除第 xix _ i 个元素之后的元素,并以被移除的元素按原有顺序创建一个编号为 ii 的新序列。 当 ti=2t _ i=2 时,他从编号为 sis _ i 的序列中 (0≤si<i)(0\leq s _ i\lt i) 移除大于 xix _ i 的元素,并以被移除的元素按原有顺序创建一个编号为 ii 的新序列。

对于长度为 LL 的序列 XX,XX 的每个元素都属于“第 00 个元素之后的元素”。 另外,对于任意满足 L≤lL\leq l 的 ll,XX 的没有元素属于“第 ll 个元素之后的元素”。 对于 i=1,2,…,Qi=1,2,\ldots,Q,求第 ii 次操作 之后立即 编号为 ii 的序列的长度。

输入格式

输入由标准输入给出,格式如下: NN A1A _ 1 A2A _ 2 …\ldots ANA _ N QQ t1t _ 1 s1s _ 1 x1x _ 1 t2t _ 2 s2s _ 2 x2x _ 2 ⋮\vdots tQt _ Q sQs _ Q xQx _ Q

输出格式

输出 QQ 行。 第 ii 行 (1≤i≤Q)(1\leq i\leq Q) 应包含第 ii 次操作之后立即编号为 ii 的序列的长度。

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×1051\leq N\leq2\times10^5 1≤Ai≤N (1≤i≤N)1\leq A _ i\leq N\ (1\leq i\leq N) Ai≠Aj (1≤i<j≤N)A _ i\neq A _ j\ (1\leq i\lt j\leq N) 1≤Q≤2×1051\leq Q\leq2\times10^5 ti=1,2 (1≤i≤Q)t _ i=1,2\ (1\leq i\leq Q) 0≤si<i (1≤i≤Q)0\leq s _ i\lt i\ (1\leq i\leq Q) 0≤xi≤N (1≤i≤Q)0\leq x _ i\leq N\ (1\leq i\leq Q) 所有输入值均为整数。最初,Takahashi 有序列 A=(1,8,7,4,5,6,3,2,9,10)A=(1,8,7,4,5,6,3,2,9,10),长度为 1010。 他令 A=(1,8,7,4,5,6,3,2,9,10)A=(1,8,7,4,5,6,3,2,9,10) 为编号为 00 的序列,然后开始一系列操作。 在第一次操作中,他从编号为 00 的序列中移除大于 44 的元素,即 8,7,5,6,9,108,7,5,6,9,10,并用这些元素创建编号为 11 的新序列。该操作之后,编号为 00 和 11 的序列分别为 (1,4,3,2)(1,4,3,2) 和 (8,7,5,6,9,10)(8,7,5,6,9,10)。 在第二次操作中,他从编号为 11 的序列中移除第 22 个元素之后的元素,即 5,6,9,105,6,9,10,并用这些元素创建编号为 22 的新序列。该操作之后,编号为 0,1,20,1,2 的序列分别为 (1,4,3,2)(1,4,3,2)、(8,7)(8,7) 和 (5,6,9,10)(5,6,9,10)。 在第三次及随后的操作中,第 ii 次操作之后编号为 0,1,2,…,i0,1,2,\ldots,i 的序列如下:

(1,2),(8,7),(5,6,9,10),(4,3)(1,2),(8,7),(5,6,9,10),(4,3) (1,2),(8,7),(5),(4,3),(6,9,10)(1,2),(8,7),(5),(4,3),(6,9,10) (1),(8,7),(5),(4,3),(6,9,10),(2)(1),(8,7),(5),(4,3),(6,9,10),(2)

第 i=1,2,…,5i=1,2,\ldots,5 次操作之后编号为 ii 的序列的长度分别为 6,4,2,3,16,4,2,3,1。每个结果各占一行输出。
操作可能会创建空序列。

标签: AtCoder|abc324G

来源

AtCoder|abc324G