Bầu cử ở thành phố Valera
Đề bài
Mô tả
Thành phố nơi Valera sống chuẩn bị bầu cử Hội đồng thành phố.
Thành phố có quận và con đường hai chiều, từ một quận bất kỳ đều có thể đi tới mọi quận khác theo các con đường. Các quận được đánh số từ đến . Với mỗi con đường, người dân đã xác định nó có phải là đường hỏng (đường cần sửa) hay không.
Có ứng cử viên tham gia bầu cử, cũng được đánh số từ đến . Nếu ứng cử viên số trúng cử vào Hội đồng thành phố, người này sẽ thực hiện đúng một lời hứa: sửa tất cả các đường hỏng nằm trên đường đi từ quận tới quận (nơi đặt Hội đồng thành phố).
Hãy giúp Valera chọn ra một tập ứng cử viên sao cho nếu tất cả ứng cử viên trong tập đó trúng cử thì mọi đường hỏng trong thành phố đều được sửa. Nếu có nhiều tập thỏa mãn, hãy chọn tập có số ứng cử viên ít nhất.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số quận trong thành phố.
- dòng tiếp theo, mỗi dòng chứa ba số nguyên dương , , : hai quận được nối bởi con đường thứ và loại đường. Nếu thì con đường không hỏng; nếu thì con đường bị hỏng.
Dữ liệu đảm bảo các con đường tạo thành một cây.
Dữ liệu ra
- Dòng đầu in một số không âm : số ứng cử viên ít nhất cần chọn.
- Dòng thứ hai in số nguyên cách nhau bởi dấu cách: số hiệu của các ứng cử viên được chọn. Nếu có nhiều đáp án, in ra đáp án nào cũng được.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 1 2 2 2 3 2 3 4 2 4 5 2 |
1 5 |
Cả 4 con đường đều hỏng và nằm trên đường đi từ quận 5 về quận 1. Chọn ứng cử viên 5 là đủ sửa tất cả. |
| 5 1 2 1 2 3 2 2 4 1 4 5 1 |
1 3 |
Chỉ có con đường 2-3 bị hỏng. Đường đi từ quận 3 về quận 1 đi qua con đường này, nên chọn ứng cử viên 3. |
| 5 1 2 2 1 3 2 1 4 2 1 5 2 |
4 2 3 4 5 |
Bốn con đường hỏng nối trực tiếp với quận 1, không có đường đi nào đi qua nhiều hơn một trong số chúng, nên cần cả 4 ứng cử viên 2, 3, 4, 5. |
Bình luận