EULER

Cho một đồ thị vô hướng gồm n đỉnh và m cạnh. Mỗi cạnh nối hai đỉnh u, v.

Hãy tìm một đường đi Euler trong đồ thị, tức là một dãy các đỉnh sao cho:

  • Mỗi cạnh của đồ thị được đi qua đúng một lần
  • Các cạnh đi liên tiếp phải có chung đỉnh
  • Đường đi có thể bắt đầu và kết thúc tại hai đỉnh khác nhau

Dữ liệu vào: test.inp

Dòng 1: hai số nguyên n, m
(1 <= n <= 10^5, 1 <= m <= 10^5)

m dòng tiếp theo, mỗi dòng gồm 2 số nguyên u, v (biểu thị cạnh nối giữa u và v)

Dữ liệu ra: test.out

  • Nếu tồn tại đường đi Euler:
    Ghi ra một dòng gồm các đỉnh theo thứ tự đi của đường đi Euler
  • Nếu không tồn tại:
    Ghi: NO

Chú ý:

  • Nếu có nhiều đường đi Euler, in ra một đường bất kỳ
  • Đồ thị có thể không liên thông
  • Nếu tồn tại đúng 0 hoặc 2 đỉnh có bậc lẻ thì có đường đi Euler
  • Nếu tất cả các đỉnh đều có bậc chẵn thì tồn tại chu trình Euler

# test.inp test.out
1

CODE
EULER

Hoàng Công Bình
15/04/2026 09:06:28
0/12 AC
Vạn Lý Độc Hành
09/04/2026 11:11:38
12/12 AC

Sau 3 lần nộp không AC thì sẽ có gợi ý.
Sau 3 lần nộp không AC thì sẽ có gợi ý.