Đường đi theo tính chẵn lẻ

Đề bài

Mô tả

Cho một đồ thị vô hướng n đỉnh, m cạnh, không có khuyên và không có cạnh kép. Mỗi đỉnh i được gán một giá trị xi{0,1} — chính là tính chẵn lẻ của số lần đỉnh đó phải xuất hiện trong đường đi.

Bạn cần tìm một đường đi (có thể rỗng) thỏa mãn:

  • Hai đỉnh liên tiếp trên đường đi phải có cạnh nối trực tiếp trong đồ thị.
  • Mỗi đỉnh i xuất hiện trên đường đi đúng số lần có cùng tính chẵn lẻ với xi (nếu xi=0 thì xuất hiện số lần chẵn, kể cả 0 lần; nếu xi=1 thì xuất hiện số lần lẻ).
  • Tổng số đỉnh trên đường đi (đếm cả lặp lại) không vượt quá 4n.

Một đỉnh có thể được ghé thăm nhiều lần. Đường đi có thể bắt đầu và kết thúc ở bất kỳ đỉnh nào, hoặc rỗng (không có đỉnh nào).

Nếu không tồn tại đường đi như vậy, in ra 1.

Dữ liệu vào

  • Dòng đầu: hai số nguyên nm.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ui,vi — một cạnh giữa hai đỉnh uivi (uivi).
  • Dòng cuối: n số nguyên x1,x2,,xn, mỗi số là 0 hoặc 1.

Dữ liệu ra

Nếu không tồn tại đường đi, in ra một số 1.

Ngược lại, in ra hai dòng:

  • Dòng đầu: số lượng đỉnh k trên đường đi (0k4n).
  • Dòng thứ hai: k số nguyên — danh sách các đỉnh theo thứ tự xuất hiện trên đường đi. Nếu k=0 thì có thể bỏ trống dòng này.

Nếu có nhiều đáp án, in ra bất kỳ.

Ràng buộc

  • 2n105
  • 0m105
  • 1ui,vin, uivi
  • 0xi1
  • Đồ thị không có khuyên và không có cạnh kép.

Ví dụ

Input Output Giải thích
3 2
1 2
2 3
1 1 1
7
3 2 1 2 3 2 3
Đỉnh 1 xuất hiện 1 lần (lẻ), đỉnh 2 xuất hiện 3 lần (lẻ), đỉnh 3 xuất hiện 3 lần (lẻ). Phù hợp với x=(1,1,1). Mọi đường đi khác thỏa ràng buộc (ví dụ "1 2 3") đều được chấp nhận.
5 7
1 2
1 3
1 4
1 5
3 4
3 5
4 5
0 1 0 1 0
12
4 1 2 1 3 5 3 5 3 1 3 1
Đỉnh 24 xuất hiện số lần lẻ; các đỉnh còn lại 1,3,5 xuất hiện số chẵn lần.
2 0
0 0
0 Tất cả xi=0, đường đi rỗng là hợp lệ.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0