题目描述
判断是否存在一个长度为 N、由 1 到 N 之间(含两端)的整数组成的整数序列 A,满足以下全部 Q 个条件;若存在,请求出其中一个。
第 i 个条件 (1≤i≤Q) 由整数三元组 (ti,ui,vi) 给出,定义如下。
- 若 ti=0:Aui≤Avi
- 若 ti=1:Aui<Avi
若存在多个满足全部条件的序列,输出其中任意一个即可。
输入格式
输入按以下格式从标准输入读入:
- N Q
- t1 u1 v1
- t2 u2 v2
- ⋮
- tQ uQ vQ
输出格式
第一行:若存在满足条件的整数序列则输出 Yes,否则输出 No。若第一行输出 Yes,则第二行输出一个满足条件的整数序列,各元素之间用空格分隔。若存在多个满足全部条件的序列,输出其中任意一个即可。
7 8
0 1 4
0 2 6
0 3 2
1 3 5
0 4 1
0 4 3
1 5 7
0 6 7
Yes
1 4 2 1 3 5 6
令 A=(1,4,2,1,3,5,6);这是一个长度为 7、由 1 到 7 之间(含两端)的整数组成的整数序列。例如,第一个条件 A1≤A4 成立,因为 1≤1。其余七个条件也都成立,因此对应 A=(1,4,2,1,3,5,6) 的输出被视为正确。
此外,A=(1,1,1,1,2,2,3)、A=(3,5,4,3,6,7,7) 等也满足条件,因此输出这些也被视为正确。
1 1
1 1 1
No
不存在满足 A1<A1 的整数序列 A。
15 20
0 9 8
1 6 1
0 6 8
0 11 1
0 4 2
1 11 12
0 4 14
1 10 1
0 12 12
1 7 12
1 13 1
1 5 9
1 10 14
1 14 1
1 8 12
0 10 12
1 4 15
1 3 9
0 5 14
0 10 2
Yes
15 14 10 7 6 5 4 12 11 3 2 13 1 9 8
数据范围
-
1≤N≤2×105
-
1≤Q≤2×105
-
ti∈{0,1} (1≤i≤Q)
-
1≤ui≤N (1≤i≤Q)
-
1≤vi≤N (1≤i≤Q)
-
输入中的所有值均为整数。
-
来源:AtCoder ABC 478 E
子任务设置
- 子任务 1(30 分):N,Q≤2000。
- 子任务 2(30 分):N≤2×105 且 Q≤2000。
- 子任务 3(40 分):无特殊限制。