#abc244g. [abc244_g]Construct Good Path

[abc244_g]Construct Good Path

问题描述

给定一个简单的连通无向图,有 NN 个顶点和 MM 条边。其中,图是简单图(没有多重边和自环)。
对于 i=1,2,,Mi = 1, 2, \ldots, M,第 ii 条边连接着顶点 uiu_i 和顶点 viv_i

如果以下两个条件都满足,则序列 (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 的路径。

给定一个长度为 NN 的字符串 S=s1s2sNS = s_1s_2\ldots s_N,其中 sis_i 只包含 0011。如果路径 A=(A1,A2,,Ak)A = (A_1, A_2, \ldots, A_k) 满足以下条件,则称其为关于 SS好路径

  • 对于所有 i=1,2,,Ni = 1, 2, \ldots, N,满足:
    • si=0s_i = 0,则 AAii 的数量为偶数。
    • si=1s_i = 1,则 AAii 的数量为奇数。

根据问题的约束,可以证明至少存在一条关于 SS 的长度不超过 4N4N 的好路径。请打印出一条关于 SS 的长度不超过 4N4N 的好路径。

约束条件

  • 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,uiN, M, u_iviv_i 是整数。
  • SS 是一个长度为 NN 的字符串,只包含 0011

输入格式

输入以标准输入给出,格式如下:

NN MM u1u_1 v1v_1 u2u_2 v2v_2 \vdots uMu_M vMv_M SS

输出格式

以以下格式打印出一条关于 SS 的长度不超过 4N4N 的好路径。具体而言,第一行应该包含路径的长度 KK,第二行应该包含路径的元素,元素之间用空格分隔。

KK A1A_1 A2A_2 \ldots AKA_K


示例输入 1

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

示例输出 1

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
  • 它包含奇数个数字 22
  • 它包含偶数个数字 33
  • 它包含偶数个数字 44
  • 它包含偶数个数字 55
  • 它包含奇数个数字 66

因此,它是关于 S=110001S = 110001 的好路径。


示例输入 2

3 3
3 1
3 2
1 2
000

示例输出 2

0

空路径 ()() 是关于 S=000000S = 000000 的好路径。此外,路径如 (1,2,3,1,2,3)(1, 2, 3, 1, 2, 3) 也被接受。