Tổng thống và những con đường
Đề bài
Mô tả
Có thành phố, thủ đô nằm ở thành phố và quê hương của tổng thống nằm ở thành phố (). Các thành phố được nối bởi các con đường một chiều, mỗi con đường có thời gian di chuyển là một số nguyên dương.
Mỗi năm tổng thống về thăm quê , đoàn xe đi theo một đường đi từ đến sao cho tổng thời gian di chuyển là nhỏ nhất (nếu có nhiều đường đi ngắn nhất, không thể biết trước tổng thống sẽ chọn đường nào).
Với mỗi con đường, bộ Giao thông muốn biết:
- Nếu tổng thống chắc chắn đi qua con đường đó trong mọi hành trình ngắn nhất — nghĩa là con đường đó thuộc tất cả các đường đi ngắn nhất từ đến — thì in ra YES.
- Ngược lại, nếu có thể sửa con đường đó (giảm thời gian di chuyển của nó xuống một số nguyên dương mới, không nhỏ hơn ) để sau khi sửa, con đường đó chắc chắn nằm trên đường đi ngắn nhất duy nhất từ đến , thì in ra CAN kèm chi phí sửa nhỏ nhất. Chi phí sửa là hiệu giữa thời gian di chuyển cũ và mới của con đường.
- Nếu không thể làm cho con đường đó chắc chắn được đi qua bằng cách sửa như trên, thì in ra NO.
Lưu ý: chỉ được giảm thời gian của con đường (thời gian mới phải là số nguyên ), và chỉ sửa đúng một con đường đang xét.
Dữ liệu vào
- Dòng đầu chứa bốn số nguyên , , , — số thành phố, số con đường, số hiệu thủ đô và số hiệu quê hương.
- dòng tiếp theo, dòng thứ chứa ba số nguyên , , — con đường một chiều thứ đi từ đến với thời gian di chuyển .
Các thành phố được đánh số từ đến . Giữa hai thành phố có thể có nhiều con đường. Đảm bảo tồn tại đường đi từ đến .
Dữ liệu ra
In ra dòng, dòng thứ chứa thông tin về con đường thứ (theo thứ tự xuất hiện trong dữ liệu vào): YES, hoặc CAN kèm chi phí sửa nhỏ nhất, hoặc NO.
Ràng buộc
- ,
- ,
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 7 1 6 1 2 2 1 3 10 2 3 7 2 4 8 3 5 3 4 5 2 5 6 1 |
YES CAN 2 CAN 1 CAN 1 CAN 1 CAN 1 YES |
Có hai đường đi ngắn nhất độ dài : và . Con đường và nằm trên mọi đường ngắn nhất nên là YES. Các con đường còn lại có thể được sửa để trở thành đường ngắn nhất duy nhất. |
| 3 3 1 3 1 2 10 2 3 10 1 3 100 |
YES YES CAN 81 |
Đường ngắn nhất duy nhất là độ dài , nên hai cạnh đầu là YES. Cạnh dài ; để nó là đường ngắn nhất duy nhất cần độ dài , tức giảm ít nhất . |
| 2 2 1 2 1 2 1 1 2 2 |
YES NO |
Đường ngắn nhất duy nhất là cạnh đầu (độ dài ). Cạnh thứ hai dài ; muốn nó chắc chắn được đi qua cần độ dài , không hợp lệ, nên NO. |
Bình luận