trang chủ / bài tập / werewolf

Hành Trình Người Sói

Đề bài

Mô tả

Remus Lupin Remus Lupin trong hình dạng người sói, cần di chuyển từ khu vực 1 đến khu vực N trong Rừng Cấm. Rừng CấmN khu vực được nối bởi M con đường hai chiều.

Chu kỳ trăng có T pha, đánh số từ 0 đến T1. Tại thời điểm t, pha trăng hiện tại là tmodT. Người sói bắt đầu tại khu vực 1 ở thời điểm 0 (pha 0).

Mỗi con đường i nối khu vực uivi, có thời gian di chuyển wi đơn vị. Tuy nhiên, con đường chỉ an toàn khi pha trăng hiện tại nằm trong khoảng [li,ri]. Nếu liri, đường an toàn tại các pha li,li+1,,ri. Nếu li>ri, khoảng quay vòng: đường an toàn tại các pha li,li+1,,T1,0,1,,ri.

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 i, thời gian tăng thêm wi và pha trăng khi đến nơi là (t+wi)modT.

Tại bất kỳ khu vực nào, người sói có thể chờ đợi 1 đơn vị thời gian (pha trăng tăng lên 1).

Tìm thời gian ngắn nhất để di chuyển từ khu vực 1 đến khu vực N. In 1 nếu không thể đến được.

Dữ liệu vào

  • Dòng đầu tiên chứa ba số nguyên N, M, T.
  • M dòng tiếp theo, mỗi dòng chứa năm số nguyên ui, vi, wi, li, ri 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 1 đến khu vực N, hoặc 1 nếu không thể.

Ràng buộc

  • 2N5×104
  • 1M105
  • 1T100
  • 1wi106
  • 0li,ri<T
  • 1ui,viN, uivi

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

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0