Cuộc cãi vã
Đề bài
Mô tả
Thành phố có ngã tư và con đường hai chiều nối chúng, mỗi con đường có độ dài bằng nhau. Không có đường nối một ngã tư với chính nó, và giữa hai ngã tư có nhiều nhất một con đường.
Bob sống ở ngã tư số , Alex sống ở ngã tư số . Hôm nay Bob cần đi từ nhà mình tới ngã tư , còn Alex cần đi từ nhà mình tới ngã tư . Hai người vừa cãi nhau nên không muốn gặp nhau ở bất kỳ ngã tư nào cùng một thời điểm.
Hai người xuất phát cùng lúc và di chuyển với vận tốc bằng nhau: trong mỗi bước, mỗi người đi hết đúng một con đường sang ngã tư kề. Cho tới khi cả hai đến đích, không ai được đứng yên, cả hai luôn đi đồng thời trong mỗi bước.
Điều kiện duy nhất là: tại mọi thời điểm (kể cả lúc xuất phát và lúc kết thúc), hai người không được đứng ở cùng một ngã tư. Họ được phép gặp nhau ở giữa một con đường khi đi ngược chiều nhau trên cùng con đường đó. Cũng có thể một người vừa bước vào một ngã tư đúng lúc người kia rời khỏi ngã tư đó (ví dụ Alex đi từ ngã tư sang ngã tư trong khi Bob đi từ ngã tư sang ngã tư ).
Hai lộ trình phải có số con đường bằng nhau. Hãy tìm lộ trình cho Bob và Alex sao cho họ không bao giờ ở cùng một ngã tư tại cùng thời điểm, và trong tất cả các cách hợp lệ, chọn cách có số con đường ít nhất. Nếu không tồn tại lộ trình thỏa mãn, in ra .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số ngã tư và số con đường.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên là hai ngã tư được nối bởi một con đường.
Dữ liệu ra
Nếu không tồn tại lộ trình thỏa mãn, in ra .
Ngược lại:
- Dòng đầu in số nguyên : độ dài (số con đường) của lộ trình ngắn nhất.
- Dòng thứ hai in số nguyên: lộ trình của Bob, tức dãy ngã tư mà Bob đi qua (bắt đầu ở , kết thúc ở ).
- Dòng thứ ba in số nguyên: lộ trình của Alex theo cùng định dạng (bắt đầu ở , kết thúc ở ).
Nếu có nhiều đáp án tối ưu, in ra bất kỳ đáp án nào.
Ràng buộc
- Không có đường nối một ngã tư với chính nó, không có hai con đường nối cùng một cặp ngã tư.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 1 1 2 |
1 1 2 2 1 |
Bob đi , Alex đi . Họ gặp nhau ở giữa con đường (đi ngược chiều), điều này được phép. |
| 7 5 1 2 2 7 7 6 2 3 3 4 |
-1 | Không có cách nào để cả hai đến đích mà không đứng cùng một ngã tư tại cùng thời điểm. |
| 7 6 1 2 2 7 7 6 2 3 3 4 1 5 |
6 1 2 3 4 3 2 7 7 6 7 2 1 5 1 |
Cả hai lộ trình đều dài con đường. Tại mỗi thời điểm hai người luôn ở hai ngã tư khác nhau. |
Bình luận