trang chủ / đề bài / gr07_fuel

Đổ xăng

Đề bài

Mô tả

Có n thành phố đánh số từ 1 đến n và m con đường hai chiều. Con đường thứ i nối hai thành phố ui, vi và có độ dài di: đi hết con đường này tốn đúng di lít xăng. Có thể có đường nối một thành phố với chính nó và nhiều đường nối cùng một cặp thành phố.

Bạn lái một chiếc xe có bình xăng chứa tối đa C lít, xuất phát ở thành phố 1 với bình rỗng và muốn tới thành phố n. Ở thành phố v có trạm xăng bán với giá pv cho mỗi lít; tại đó bạn được mua một số nguyên lít bất kỳ, miễn là lượng xăng trong bình không vượt quá C. Xe chỉ đi vào một con đường khi trong bình có ít nhất di lít.

Hãy tính số tiền ít nhất cần bỏ ra để tới thành phố n.

Dữ liệu vào

  • Dòng đầu tiên chứa ba số nguyên n, m, C.
  • Dòng thứ hai chứa n số nguyên p1,p2,…,pn.
  • m dòng tiếp theo, dòng thứ i chứa ba số nguyên ui,vi,di.

Dữ liệu ra

In ra số tiền ít nhất, hoặc −1 nếu không thể tới thành phố n.

Ràng buộc

  • 1≤n≤1000
  • 0≤m≤4000
  • 1≤C≤100
  • 1≤pv≤106
  • 1≤ui,vi≤n
  • 1≤di≤100

Ví dụ

Input Output Giải thích
3 2 10
1 10 10
1 2 3
2 3 4
7 Mua đủ 7 lít ngay ở thành phố 1 (giá 1) rồi đi 1→2→3. Nếu chỉ mua 3 lít ở thành phố 1 và 4 lít ở thành phố 2 thì tốn 3+40=43.
4 4 5
2 1 3 1
1 2 3
2 4 6
1 3 5
3 2 1
-1 Con đường duy nhất tới thành phố 4 dài 6, lớn hơn dung tích bình.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0