3692: 最长上升子序列

内存限制:256 MB 时间限制:2.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

维护一个序列,使它可以进行下面两种操作:

1.在末尾添加一个数字x。 2.将整个序列变成第x次操作后的样子。

在每次操作后,输出当前序列的最长上升子序列的长度。序列初始时为空。

输入

第一行有一个正整数n,表示操作个数。接下来n行每行有两个整数op,x。如果op为0,则表示添加x这个数字;如果op为1,则表示回到第x次操作之后。

输出

对于每次操作,输出一个答案,表示当前最长上升子序列的长度。

样例输入 复制

5
0 2
0 0
1 0
1 0
0 5

样例输出 复制

1
1
0
0
1

提示

【样例解释】         

第一次操作后,序列为 2。    

第二次操作后,序列为2 0。    

第三次操作后,序列为(空)。    

第四次操作后,序列为(空)。    

第五次操作后,序列为 5。

数据范围与约定

30%的数据:n≤1000。

另外20%的数据没有第二个的操作。

80%的数据:n≤200000。

100%的数据:n<=500000且所有输入的数字都是长整型范围内的非负整数。