Sinh viên lười (Lazy Student)
Đề bài
Mô tả
Cho một đồ thị vô hướng có trọng số gồm đỉnh và cạnh, không có khuyên và không có cạnh bội. Với mỗi cạnh, người ta cho biết trọng số của nó và một cờ chỉ ra cạnh đó có thuộc một cây khung nhỏ nhất (MST) đã tìm được hay không ( nếu thuộc, nếu không).
Tuy nhiên, danh sách các đỉnh đầu mút của các cạnh đã bị mất. Hãy phục dựng đồ thị: với mỗi cạnh , hãy chỉ ra một cặp đỉnh sao cho:
- Đồ thị thu được liên thông, không có khuyên và không có cạnh bội.
- Tập các cạnh có tạo thành một cây khung nhỏ nhất của đồ thị (tổng trọng số của chúng đúng bằng trọng số của MST).
Nếu có nhiều cách phục dựng hợp lệ, in ra một cách bất kỳ. Nếu không tồn tại đồ thị nào thoả mãn, in ra .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và (, ) — số đỉnh và số cạnh.
- dòng tiếp theo, dòng thứ chứa hai số nguyên và (, ).
Đảm bảo có đúng giá trị bằng và đúng giá trị bằng .
Dữ liệu ra
- Nếu không tồn tại đồ thị thoả mãn, in ra .
- Ngược lại, in ra dòng. Dòng thứ chứa và (, ) — hai đầu mút của cạnh thứ theo đúng thứ tự dữ liệu vào.
Ràng buộc
- ,
- Có đúng cạnh và đúng cạnh .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 5 2 1 3 1 4 0 1 1 5 0 |
1 3 1 4 2 3 1 2 2 4 |
Ba cạnh có trọng số tạo thành cây khung là hình sao tâm tại đỉnh , tổng trọng số — đây là MST. Hai cạnh còn lại trọng số và đều lớn hơn các cạnh cây nằm trên chu trình mà chúng tạo ra, nên không thể thay thế cạnh nào của MST. |
| 3 3 1 0 2 1 3 1 |
-1 | Cạnh đầu có , trọng số , nhỏ hơn cả hai cạnh MST. Nếu thêm cạnh này vào MST, nó sẽ tạo chu trình mà nó là cạnh nhỏ nhất, mâu thuẫn với tính chất MST. |
Đáp án không duy nhất: bất kỳ cách phục dựng nào thoả mãn các điều kiện trên đều được chấp nhận.
Bình luận