Xoá cạnh giữ khoảng cách
Đề bài
Mô tả
Cho một đồ thị vô hướng, có trọng số, liên thông gồm đỉnh và cạnh. Gọi là độ dài đường đi ngắn nhất từ đỉnh đến đỉnh .
Bạn cần xoá bớt một số cạnh sao cho đồ thị còn lại nhiều nhất cạnh. Một đỉnh được gọi là tốt nếu trong đồ thị sau khi xoá vẫn tồn tại một đường đi từ đến có độ dài đúng bằng .
Hãy chọn các cạnh sẽ giữ lại sao cho số đỉnh tốt là lớn nhất có thể.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- dòng tiếp theo, dòng thứ chứa ba số nguyên , , — mô tả cạnh thứ nối hai đỉnh và với trọng số .
Đồ thị đã cho liên thông và đơn (không có khuyên, không có cạnh bội).
Dữ liệu ra
- Dòng đầu in một số nguyên — số cạnh được giữ lại ().
- Dòng thứ hai in số nguyên phân biệt từ đến — chỉ số (theo thứ tự nhập) của các cạnh được giữ lại. Số đỉnh tốt phải lớn nhất có thể.
Nếu có nhiều đáp án, in ra bất kỳ.
Ràng buộc
- ,
- ,
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 2 1 2 1 3 2 1 1 3 3 |
2 1 2 |
Khoảng cách ngắn nhất từ là , , . Giữ lại cạnh (nối –) và cạnh (nối –) cho ba đỉnh đều tốt. |
| 4 5 2 4 1 8 2 4 1 2 1 3 3 4 9 3 1 5 |
2 3 2 |
Khoảng cách , , , . Với ta chỉ giữ được 2 cạnh — chọn cạnh (nối –) và cạnh (nối –) để các đỉnh tốt. |
Bình luận