atcoder#ABC244G. [ABC244G] Construct Good Path

[ABC244G] Construct Good Path

配点 : 600600

問題文

NN 個の頂点と MM 本の辺からなる単純(自己ループおよび多重辺を持たない)かつ連結な無向グラフが与えられます。 i=1,2,,Mi = 1, 2, \ldots, M について、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結びます。

下記の 22 つの条件をともに満たす整数列 (A1,A2,,Ak)(A_1, A_2, \ldots, A_k) を長さ kkパスと呼びます。

  • すべての i=1,2,,ki = 1, 2, \dots, k について、1AiN1 \leq A_i \leq N
  • すべての i=1,2,,k1i = 1, 2, \ldots, k-1 について、頂点 AiA_i と頂点 Ai+1A_{i+1} は辺で直接結ばれている。

空列も長さ 00 のパスとみなします。

0011 のみからなる長さ NN の文字列 S=s1s2sNS = s_1s_2\ldots s_N が与えられます。 パス A=(A1,A2,,Ak)A = (A_1, A_2, \ldots, A_k) が下記を満たすとき、パス AASS に関する良いパスと呼びます。

  • すべての i=1,2,,Ni = 1, 2, \ldots, N について、次を満たす。- si=0s_i = 0 ならば、AA に含まれる ii の個数は偶数である。
    • si=1s_i = 1 ならば、AA に含まれる ii の個数は奇数である。

この問題の制約下において、SS に関する長さ 4N4N 以下の良いパスが少なくとも 11 つ存在することが示せます。 SS に関する長さ 4N4N 以下の良いパスを 11 つ出力してください。

制約

  • 2N1052 \leq N \leq 10^5
  • $N-1 \leq M \leq \min\lbrace 2 \times 10^5, \frac{N(N-1)}{2}\rbrace$
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 与えられるグラフは単純かつ連結
  • N,M,ui,viN, M, u_i, v_i は整数
  • SS0011 のみからなる長さ NN の文字列

入力

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

NN MM

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

SS

出力

SS に関する長さ 4N4N 以下の良いパスを下記の形式にしたがって出力せよ。 すなわち、11 行目にパスの長さ KK を出力し、22 行目にパスの各要素を空白区切りで出力せよ。

KK

A1A_1 A2A_2 \ldots AKA_K

6 6
6 3
2 5
4 2
1 3
6 5
3 2
110001
9
2 5 6 5 6 3 1 3 6

パス (2,5,6,5,6,3,1,3,6)(2, 5, 6, 5, 6, 3, 1, 3, 6) は、長さが 4N4N 以下であり、

  • 含まれる 11 の個数は奇数( 11 個)
  • 含まれる 22 の個数は奇数( 11 個)
  • 含まれる 33 の個数は偶数( 22 個)
  • 含まれる 44 の個数は偶数( 00 個)
  • 含まれる 55 の個数は偶数( 22 個)
  • 含まれる 66 の個数は奇数( 33 個)

であるため、S=110001S = 110001 に関する良いパスです。

3 3
3 1
3 2
1 2
000
0

空のパス ()() は、S=000000S = 000000 に関する良いパスです。 代わりにパス (1,2,3,1,2,3)(1, 2, 3, 1, 2, 3) などを出力しても正解となります。