题目描述
N 頂点 M 辺の有向グラフが与えられます。 i = 1, 2, …, M について、i 番目の辺は頂点 si から頂点 ti への有向辺です。
(1, 2, …, N) の順列 P = (P1, P2, …, PN) であって下記の 2 つの条件をともに満たすものが存在するかを判定し、存在する場合はその一例を示してください。
- すべての i = 1, 2, …, M について、Psi < Pti
- すべての i = 1, 2, …, N について、Li ≤ Pi ≤ Ri
输入格式
入力は以下の形式で標準入力から与えられる。
N M s1 t1 s2 t2 ⋮ sM tM L1 R1 L2 R2 ⋮ LN RN
输出格式
条件を満たす P が存在しない場合は、No
と出力せよ。存在する場合は、下記の形式の通り、1 行目に Yes
と出力し、 2 行目に P の各要素を空白区切りで出力せよ。 条件を満たす P が複数存在する場合は、そのうちのどれを出力しても正解となる。
Yes P1 P2 … PN
题目大意
给定一张 n 个点 m 条边的有向图,判断是否存在一个拓扑序 P 满足 Pi∈[Li,Ri]。
translated by cszyf
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
2 2
1 2
2 1
1 2
1 2
No
提示
制約
- 2 ≤ N ≤ 2 × 105
- $ 0\ \leq\ M\ \leq\ \min\lbrace\ 4\ \times\ 10^5,\ N(N-1)\ \rbrace $
- 1 ≤ si, ti ≤ N
- si = ti
- $ i\ \neq\ j\ \implies\ (s_i,\ t_i)\ \neq\ (s_j,\ t_j) $
- 1 ≤ Li ≤ Ri ≤ N
- 入力はすべて整数
Sample Explanation 1
P = (3, 1, 4, 2, 5) が条件を満たします。実際、 - 1 番目の辺 (s1, t1) = (1, 5) について、P1 = 3 < 5 = P5 - 2 番目の辺 (s2, t2) = (2, 1) について、P2 = 1 < 3 = P1 - 3 番目の辺 (s3, t3) = (2, 5) について、P2 = 1 < 5 = P5 - 4 番目の辺 (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 も成り立ちます。
Sample Explanation 2
条件を満たす P が存在しないので、No
を出力します。