AT_abc324_g.[ABC324G] Generate Arrays
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
高桥君有一个长度为 N 的数列 A=(A1,A2,…,AN)。A 是 1,2,…,N 的一个排列。
高桥君要进行 Q 次操作,生成 1+Q 个数列。将 0 号数列定义为 A,高桥君从此开始一系列操作。第 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,X 的所有元素都不是“第 l 个元素之后的元素”。
请你求出对于 i=1,2,…,Q,每次操作结束后,第 i 号数列的长度。
输入格式
输入按以下格式从标准输入给出。
N A1 A2 … AN Q t1 s1 x1 t2 s2 x2 ⋮ tQ sQ xQ
输出格式
请输出 Q 行。第 i 行(1≤i≤Q)输出第 i 次操作结束后第 i 号数列的长度。
输入输出样例
输入#1
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
输出#1
6 4 2 3 1
输入#2
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
输出#2
8 8 8 0 0
输入#3
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
输出#3
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)
- 输入均为整数
样例解释 1
一开始,高桥君有长度为 10 的数列 A=(1,8,7,4,5,6,3,2,9,10)。高桥君以 0 号数列 A=(1,8,7,4,5,6,3,2,9,10) 开始一系列操作。第 1 次操作,从 0 号数列中去除大于 4 的元素 8,7,5,6,9,10,并将这些元素组成新的 1 号数列。操作后,0,1 号数列分别为 (1,4,3,2),(8,7,5,6,9,10)。第 2 次操作,从 1 号数列中去除第 2 个元素之后的元素 5,6,9,10,并将这些元素组成新的 2 号数列。操作后,0,1,2 号数列分别为 (1,4,3,2),(8,7),(5,6,9,10)。第 3 次及以后的操作,每次操作结束后 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,请按顺序输出。
样例解释 2
操作结果可能会出现空数列。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?