Hành Trình Người Sói
Remus Lupin
trong hình dạng người sói, cần di chuyển từ khu vực đến khu vực trong Rừng Cấm. Rừng Cấm có khu vực được nối bởi con đường hai chiều.
Chu kỳ trăng có pha, đánh số từ đến . Tại thời điểm , pha trăng hiện tại là . Người sói bắt đầu tại khu vực ở thời điểm (pha ).
Mỗi con đường nối khu vực và , có thời gian di chuyển đơn vị. Tuy nhiên, con đường chỉ an toàn khi pha trăng hiện tại nằm trong khoảng . Nếu , đường an toàn tại các pha . Nếu , khoảng quay vòng: đường an toàn tại các pha .
Người sói chỉ có thể bắt đầu đi trên một con đường khi pha trăng hiện tại nằm trong khoảng an toàn. Khi đi trên đường , thời gian tăng thêm và pha trăng khi đến nơi là .
Tại bất kỳ khu vực nào, người sói có thể chờ đợi đơn vị thời gian (pha trăng tăng lên ).
Tìm thời gian ngắn nhất để di chuyển từ khu vực đến khu vực . In nếu không thể đến được.
Dữ liệu vào
- Dòng đầu tiên chứa ba số nguyên , , .
- dòng tiếp theo, mỗi dòng chứa năm số nguyên , , , , mô tả một con đường.
Dữ liệu ra
In một số nguyên duy nhất — thời gian ngắn nhất để đi từ khu vực đến khu vực , hoặc nếu không thể.
Ràng buộc
- ,
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 4 3 1 2 2 0 1 2 4 3 2 2 1 3 1 0 0 3 4 1 1 1 |
2 | Đi đường 1→3 (w=1, pha 0 hợp lệ, đến pha 1) rồi 3→4 (w=1, pha 1 hợp lệ). Tổng thời gian = 2. Đường 1→2→4 tốn 5 nên không tối ưu. |
| 3 2 4 1 2 1 2 2 2 3 1 3 3 |
4 | Pha 0: đường 1-2 chỉ mở pha 2. Chờ 2 đơn vị (pha 0→1→2), đi 1→2 (w=1, pha 2, đến pha 3). Đường 2-3 mở pha 3, đi ngay 2→3 (w=1). Tổng = 2 + 1 + 1 = 4. |
Bình luận