#aBC304EX. [ABC304Ex] Constrained Topological Sort

[ABC304Ex] Constrained Topological Sort

AT_abc304_h [ABC304Ex] Constrained Topological Sort

题目描述

给定一个有 NN 个顶点、MM 条边的有向图。对于 i=1,2,,Mi=1,2,\ldots,M,第 ii 条边是从顶点 sis_i 指向顶点 tit_i 的有向边。

请判断是否存在一个 NN 元的排列 P=(P1,P2,,PN)P=(P_1,P_2,\ldots,P_N),满足以下两个条件,并在存在时给出一个例子:

  • 对于所有 i=1,2,,Mi=1,2,\ldots,M,都有 Psi<PtiP_{s_i} < P_{t_i}
  • 对于所有 i=1,2,,Ni=1,2,\ldots,N,都有 LiPiRiL_i \leq P_i \leq R_i

输入格式

输入以如下格式从标准输入读入。

NN MM
s1s_1 t1t_1
s2s_2 t2t_2
\vdots
sMs_M tMt_M
L1L_1 R1R_1
L2L_2 R2R_2
\vdots
LNL_N RNR_N

输出格式

如果不存在满足条件的 PP,输出 No。如果存在,第一行输出 Yes,第二行输出 PP 的每个元素,空格分隔。如果有多个满足条件的 PP,输出其中任意一个均可。

Yes
P1P_1 P2P_2 \ldots PNP_N

输入输出样例 #1

输入 #1

5 4
1 5
2 1
2 5
4 3
1 5
1 3
3 4
1 3
4 5

输出 #1

Yes
3 1 4 2 5

输入输出样例 #2

输入 #2

2 2
1 2
2 1
1 2
1 2

输出 #2

No

说明/提示

限制条件

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 0Mmin{4×105,N(N1)}0 \leq M \leq \min\{4 \times 10^5, N(N-1)\}
  • 1si,tiN1 \leq s_i, t_i \leq N
  • sitis_i \neq t_i
  • ij    (si,ti)(sj,tj)i \neq j \implies (s_i, t_i) \neq (s_j, t_j)
  • 1LiRiN1 \leq L_i \leq R_i \leq N
  • 输入均为整数

样例解释 1

P=(3,1,4,2,5)P=(3,1,4,2,5) 满足条件。实际上,

  • 第 1 条边 (s1,t1)=(1,5)(s_1, t_1) = (1, 5),有 P1=3<5=P5P_1=3 < 5=P_5
  • 第 2 条边 (s2,t2)=(2,1)(s_2, t_2) = (2, 1),有 P2=1<3=P1P_2=1 < 3=P_1
  • 第 3 条边 (s3,t3)=(2,5)(s_3, t_3) = (2, 5),有 P2=1<5=P5P_2=1 < 5=P_5
  • 第 4 条边 (s4,t4)=(4,3)(s_4, t_4) = (4, 3),有 P4=2<4=P3P_4=2 < 4=P_3

并且,

  • L1=1P1=3R1=5L_1=1 \leq P_1=3 \leq R_1=5
  • L2=1P2=1R2=3L_2=1 \leq P_2=1 \leq R_2=3
  • L3=3P3=4R3=4L_3=3 \leq P_3=4 \leq R_3=4
  • L4=1P4=2R4=3L_4=1 \leq P_4=2 \leq R_4=3
  • L5=4P5=5R5=5L_5=4 \leq P_5=5 \leq R_5=5

也都成立。

样例解释 2

不存在满足条件的 PP,因此输出 No

由 ChatGPT 4.1 翻译