题目描述
定义一个序列 A 的前缀 mex 序列 B 是这样的一个序列:B 的第 i 项为 mex{A1,A2,…,Ai},对于一个由有限个非负整数组成的数列 X,我们定义 mex 为数列中不包含的最小非负整数。比如 mex{1,2,3}=0,mex{0,1,2,4}=3。
请你构造一个单调不降的 A 数组,使得其前缀 mex 数组 B 满足一些约束。或者判定没有任何一种符合要求的 A 存在。
具体的,B 数组需要满足的限制形如 k 个二元组 (x,y),表示数 x 在 B 中恰好出现了 y 次。
不需要最小化构造的 A 数组的大小或者使构造满足其它没有给定的额外条件。
小 S 不会这个问题,所以他请你来帮忙了。
输入格式
第一行一个非负整数 k,表示构造的 A 需要满足的二元组的个数。
接下来 k 行,每行 2 个非负整数,表示一个二元组 (x,y)。
输出格式
如果不存在合法情况,输出一行一个数 −1。
否则输出两行:
第一行一个整数 n,为你构造的序列 A 的长度,需满足 0≤n≤2×105。
第二行 n 个正整数,为你构造的序列 A 的元素,需满足 0≤Ai≤109 且 ∀i∈[1,n−1],Ai≤Ai+1。
4
1 1
3 1
2 3
4 1
6
0 1 1 1 2 3
4
1 1
3 0
2 3
4 1
-1
提示
样例解释
第一个样例中,构造出来的 B=(1,2,2,2,3,4), 符合以上 k 个二元组的要求。
更详细的,有:
B1=MEX{A1}=MEX{0}=1;
B2=MEX{A1,A2}=MEX{0,1}=2;
B3=MEX{A1,A2,A3}=MEX{0,1}=2;
$B_4=\text{MEX}\{A_1,A_2,A_3,A_4\}=\text{MEX}\{0,1\}=2$;
$B_5=\text{MEX}\{A_1,A_2,A_3,A_4,A_5\}=\text{MEX}\{0,1,2\}=3$;
$B_6=\text{MEX}\{A_1,A_2,A_3,A_4,A_5,A_6\}=\text{MEX}\{0,1,2,3\}=4$。
第二个样例中,可以证明没有任何一个 A 满足要求。
数据规模与约定
本题采用捆绑测试和子任务依赖并开启 Special Judge。
你可以输出任意一组满足条件的情况,如果不存在合法情况输出 −1。
其中子任务 0 为样例,记 0 分。
| 子任务编号 |
分值 |
特殊性质 |
子任务依赖 |
| 1 |
30 |
x=0,y=0 |
无 |
| 2 |
x=0 |
1 |
| 3 |
y=0 |
| 4 |
10 |
无特殊性质 |
1,2,3 |
对于 100% 的数据,保证 0≤k,x,y≤100,且给出的二元组中 x 两两不同。
不保证 x 单调递增。