Chủ Nhật, 5 tháng 2, 2017

Chu trình đơn

Cho đơn đồ thị vô hướng liên thông gồm n đỉnh và m cạnh. Hãy tìm một chu trình đơn bất kỳ của đồ thị đã cho.
Dữ liệu vào: từ tệp văn bản CYCLE.INP
+ Dòng đầu tiên ghi số nguyên dương n và m
+ m dòng tiếp theo mỗi dòng ghi 2 số nguyên u, v cho biết (u,v) là 1 cạnh của đồ thị
Dữ liệu ra: ghi vào tệp văn bản CYCLE.OUT
+ Dòng đầu tiên ghi 1 số nguyên cho biết số đỉnh trong cho trình
+ Dòng thứ 2 ghi n số nguyên theo thứ tự các đỉnh trong chu trình, lưu ý đỉnh đầu trùng với đỉnh cuối
Ví dụ:

CYCLE.INP
CYCLE.OUT
3 3
1 2
2 3
3 1
4
1 2 3 1

Test - code
(test có trình chấm ngoài bằng C++)
Chương trình tạo test:
Quy cách: 20 test đánh số từ 00 đến 19, mỗi test có cấu trúc như sau:
+ Dòng đầu tiên ghi số nguyên dương n và m
+ m dòng tiếp theo mỗi dòng ghi 2 số nguyên u, v cho biết (u,v) là 1 cạnh của đồ thị
Chú ý: Các cạnh của đồ thị được sắp xếp tăng dần theo u, nếu u bằng nhau thì tăng theo v, với (u,v) là một cạnh của đồ thị.

Chương trình chấm: Mỗi test đúng được 0.5 điểm, mỗi test sai sẽ thông báo lỗi (có sử dụng lại chương trình của thầy Lê Minh Hoàng)