Hydra
Đề bài
Mô tả
Đồ thị hydra là một cây có cấu trúc như sau. Có hai đỉnh và được nối với nhau bằng một cạnh; gọi là ngực, gọi là bụng. Ngực được nối với đỉnh khác, gọi là các đầu. Bụng được nối với đỉnh khác, gọi là các đuôi. Tất cả đỉnh này phải đôi một phân biệt.
Cho một đồ thị vô hướng gồm đỉnh và cạnh, không có khuyên và không có cạnh bội. Hãy tìm trong một hydra với số đầu là và số đuôi là , hoặc khẳng định rằng không tồn tại.
Nói cách khác, cần tìm một cạnh của , một tập đỉnh kề với và một tập đỉnh kề với , sao cho toàn bộ đỉnh (gồm , , các đầu và các đuôi) là đôi một phân biệt.
Dữ liệu vào
- Dòng đầu chứa bốn số nguyên , , , .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên , — một cạnh nối hai đỉnh và .
Dữ liệu ra
- Nếu không tồn tại hydra, in ra một dòng chứa NO.
- Ngược lại, in ra:
- Dòng đầu chứa YES.
- Dòng thứ hai chứa hai số nguyên và .
- Dòng thứ ba chứa số — chỉ số các đỉnh là đầu.
- Dòng thứ tư chứa số — chỉ số các đỉnh là đuôi.
Tất cả các số được in ra phải đôi một phân biệt. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.
Ràng buộc
- ,
- không có khuyên và không có cạnh bội.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 9 12 2 3 1 2 2 3 1 3 1 4 2 5 4 5 4 6 6 5 6 7 7 5 8 7 9 1 |
YES 4 1 5 6 2 3 9 |
Chọn ngực , bụng (cạnh tồn tại). Hai đầu kề là ; ba đuôi kề là . Tất cả đỉnh phân biệt. |
| 7 10 3 3 1 2 2 3 1 3 1 4 2 5 4 5 4 6 6 5 6 7 7 5 |
NO | Không tồn tại cạnh nào có thể bố trí đủ đầu và đuôi phân biệt. |
| 8 7 5 1 1 2 2 3 3 4 3 5 3 6 3 7 3 8 |
YES 3 2 4 5 6 7 8 1 |
Ngực (bậc ) cung cấp đầu ; bụng cung cấp đuôi . |
Bình luận