受限拓扑排序
题目描述
给你一个具有 N 个顶点和 M 条边的有向图。
对于 i=1,2,…,M,第 i 条边是从顶点 si 指向顶点 ti 的有向边。
请判断是否存在一个 (1,2,…,N) 的排列 P=(P1,P2,…,PN) 同时满足以下两个条件,如果存在,请给出一个例子。
- 对所有 i=1,2,…,M,有 Psi<Pti。
- 对所有 i=1,2,…,N,有 Li≤Pi≤Ri。
输入格式
输入按以下格式从标准输入给出:
N M
s_1 t_1
s_2 t_2
⋮
s_M t_M
L_1 R_1
L_2 R_2
⋮
L_N R_N
输出格式
如果不存在满足条件的 P,输出 No。如果存在满足条件的 P,在第一行输出 Yes,在第二行以空格分隔输出 P 的元素,格式如下。
如果存在多个满足条件的 P,任意一个都会被接受。
Yes
P_1 P_2 … P_N
样例
5 4
1 5
2 1
2 5
4 3
1 5
1 3
3 4
1 3
4 5
Yes
3 1 4 2 5
P=(3,1,4,2,5) 满足条件。事实上,
对于第一条边 (s1,t1)=(1,5),有 P1=3<5=P5;
对于第二条边 (s2,t2)=(2,1),有 P2=1<3=P1;
对于第三条边 (s3,t3)=(2,5),有 P2=1<5=P5;
对于第四条边 (s4,t4)=(4,3),有 P4=2<4=P3。
此外,
L1=1≤P1=3≤R1=5,
L2=1≤P2=1≤R2=3,
L3=3≤P3=4≤R3=4,
L4=1≤P4=2≤R4=3,
L5=4≤P5=5≤R5=5。
2 2
1 2
2 1
1 2
1 2
No
不存在满足条件的 P,因此输出 No。
数据范围
- 2≤N≤2×105
- $0 \le M \le \min\lbrace 4 \times 10^5, N(N-1) \rbrace$
- 1≤si,ti≤N
- si=ti
- 当 i=j 时,(si,ti)=(sj,tj)
- 1≤Li≤Ri≤N
- 所有输入值均为整数。
提示
答案不唯一,输出任意合法解即可。