atcoder#ABC304H. [ABC304Ex] Constrained Topological Sort

[ABC304Ex] Constrained Topological Sort

配点 : 625625

問題文

NN 頂点 MM 辺の有向グラフが与えられます。 i=1,2,,Mi = 1, 2, \ldots, M について、ii 番目の辺は頂点 sis_i から頂点 tit_i への有向辺です。

(1,2,,N)(1, 2, \ldots, N) の順列 P=(P1,P2,,PN)P = (P_1, P_2, \ldots, P_N) であって下記の 22 つの条件をともに満たすものが存在するかを判定し、存在する場合はその一例を示してください。

  • すべての i=1,2,,Mi = 1, 2, \ldots, M について、Psi<PtiP_{s_i} \lt P_{t_i}
  • すべての i=1,2,,Ni = 1, 2, \ldots, N について、LiPiRiL_i \leq P_i \leq R_i

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • $0 \leq M \leq \min\lbrace 4 \times 10^5, N(N-1) \rbrace$
  • 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
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

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 と出力せよ。存在する場合は、下記の形式の通り、11 行目に Yes と出力し、 22 行目に PP の各要素を空白区切りで出力せよ。 条件を満たす PP が複数存在する場合は、そのうちのどれを出力しても正解となる。

Yes

P1P_1 P2P_2 \ldots PNP_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)P = (3, 1, 4, 2, 5) が条件を満たします。実際、

  • 11 番目の辺 (s1,t1)=(1,5)(s_1, t_1) = (1, 5) について、P1=3<5=P5P_1 = 3 \lt 5 = P_5
  • 22 番目の辺 (s2,t2)=(2,1)(s_2, t_2) = (2, 1) について、P2=1<3=P1P_2 = 1 \lt 3 = P_1
  • 33 番目の辺 (s3,t3)=(2,5)(s_3, t_3) = (2, 5) について、P2=1<5=P5P_2 = 1 \lt 5 = P_5
  • 44 番目の辺 (s4,t4)=(4,3)(s_4, t_4) = (4, 3) について、P4=2<4=P3P_4 = 2 \lt 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 2
1 2
2 1
1 2
1 2
No

条件を満たす PP が存在しないので、No を出力します。