22.B2. CTDL> bài Đường đi vòng quanh
Đường đi vòng quanh
Trong một buổi liên hoan, FullHouse Dev được đưa ra một bài toán thú vị về việc lập kế hoạch cho chuyến du lịch. Họ được yêu cầu thiết kế một lộ trình đi vòng quanh các thành phố của Byteland, bắt đầu và kết thúc tại cùng một thành phố, đồng thời phải ghé thăm ít nhất hai thành phố khác trên đường đi. Mỗi thành phố trung gian chỉ được đi qua một lần duy nhất.
INPUT FORMAT:
- Dòng đầu tiên chứa hai số nguyên \(n\) và \(m\): số lượng thành phố và số lượng con đường. Các thành phố được đánh số từ \(1\) đến \(n\).
- \(m\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(a\) và \(b\): thể hiện có một con đường nối giữa thành phố \(a\) và thành phố \(b\).
- Mỗi con đường nối hai thành phố khác nhau và giữa hai thành phố bất kỳ chỉ có tối đa một con đường.
OUTPUT FORMAT:
- Đầu tiên in ra một số nguyên \(k\): số lượng thành phố trong lộ trình.
- Tiếp theo in ra \(k\) số nguyên là thứ tự các thành phố sẽ đi qua theo đúng trình tự.
- Nếu không tìm được lộ trình thỏa mãn, in ra "IMPOSSIBLE".
Ràng buộc:
- \(1 \leq n \leq 10^5\)
- \(1 \leq m \leq 2 \cdot 10^5\)
- \(1 \leq a,b \leq n\)
Ví dụ
INPUT
5 6
1 3
1 2
5 3
1 5
2 4
4 5
OUTPUT
4
3 5 1 3
Giải thích
Trong ví dụ này, một lộ trình hợp lệ là: bắt đầu từ thành phố 3, đi đến thành phố 5, sau đó đến thành phố 1, và cuối cùng quay trở lại thành phố 3. Lộ trình này thỏa mãn yêu cầu vì nó bắt đầu và kết thúc tại cùng một thành phố (thành phố 3), đi qua ít nhất hai thành phố khác (thành phố 5 và 1), và mỗi thành phố trung gian chỉ được đi qua một lần.
Comments