atcoder#ARC150C. [ARC150C] Path and Subsequence

[ARC150C] Path and Subsequence

配点 : 500500

問題文

NN 頂点 MM 辺の連結無向グラフ GG があります。頂点には 11 から NN の番号がついています。ii 番目の辺は頂点 Ui, ViU_i,\ V_i を結びます。

また、長さ NN の整数列 A=(A1, A2,, AN)A=(A_1,\ A_2, \dots,\ A_N) 、および長さ KK の整数列 B=(B1, B2, , BK)B=(B_1,\ B_2,\ \dots,\ B_K) が与えられます。

G, A, BG,\ A,\ B が以下の条件を満たすか判定してください。

  • GG における頂点 11 から NN への任意の単純パス v=(v1, v2,, vk) (v1=1, vk=N)v=(v_1,\ v_2, \dots,\ v_k)\ (v_1=1,\ v_k=N) に対し、BB(Av1, Av2, , Avk)(A_{v_1},\ A_{v_2},\ \dots,\ A_{v_k}) の(連続とは限らない)部分列になる。

制約

  • 2N1052 \leq N \leq 10^5
  • 1KN1 \leq K \leq N
  • N1M2×105N-1 \leq M \leq 2 \times 10^5
  • 1Ui<ViN1 \leq U_i < V_i \leq N
  • iji \neq j ならば (Ui, Vi)(Uj, Vj)(U_i,\ V_i) \neq (U_j,\ V_j)
  • 1Ai, BiN1 \leq A_i,\ B_i \leq N
  • 入力される値はすべて整数
  • 与えられるグラフ GG は連結

入力

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

NN MM KK

U1U_1 V1V_1

U2U_2 V2V_2

\vdots

UMU_M VMV_M

A1A_1 A2A_2 \dots ANA_N

B1B_1 B2B_2 \dots BKB_K

出力

条件を満たす場合 Yes と、満たさない場合 No と出力してください。

6 6 3
1 2
1 3
2 4
3 5
4 6
5 6
1 2 4 5 2 6
1 2 6
Yes

頂点 11 から頂点 66 への単純パスは (1, 2, 4, 6), (1, 3, 5, 6)(1,\ 2,\ 4,\ 6),\ (1,\ 3,\ 5,\ 6)22 通りであり、これらに対する (Av1, Av2, , Avk)(A_{v_1},\ A_{v_2},\ \dots,\ A_{v_k}) はそれぞれ (1, 2, 5, 6), (1, 4, 2, 6)(1,\ 2,\ 5,\ 6),\ (1,\ 4,\ 2,\ 6) です。 これらはいずれも B=(1, 2, 6)B=(1,\ 2,\ 6) を部分列に持つので答えは Yes です。

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

頂点 11 から頂点 55 への単純パスである (1, 2, 5)(1,\ 2,\ 5) に対する (Av1, Av2, , Avk)(A_{v_1},\ A_{v_2},\ \dots,\ A_{v_k})(1, 2, 2)(1,\ 2,\ 2) であり、これは B=(1, 3, 2)B=(1,\ 3,\ 2) を部分列に持ちません。

10 20 3
5 6
5 10
5 7
3 5
3 7
2 6
3 8
4 5
5 8
7 10
1 6
1 9
4 6
1 2
1 4
6 7
4 8
2 5
3 10
6 9
2 5 8 5 1 5 1 1 5 10
2 5 1
Yes