VOI 07 Bài 3 - Robot cứu hỏa

View as PDF

Submit solution


Points: 0.22 (partial)
Time limit: 0.38s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
Vietnam Olympiad of Informatics 2007
Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Trên một mạng lưới giao thông có n nút, các nút được đánh số từ 1 đến ~n~ và giữa hai nút bất kỳ có không quá một đường nối trực tiếp (đường nối trực tiếp là một đường hai chiều). Ta gọi đường đi từ nút ~s~ đến nút ~t~ là một dãy các nút và các đường nối trực tiếp có dạng:

~s = u_{1}~, ~e_{1}~, ~u_{2}~, ..., ~u_{i}~, ~e_{i}~, ~u_{i+1}~, ..., ~u_{k-1}~, ~e_{k-1}~, ~u_{k} = t~,

trong đó ~u_{1}~, ~u_{2}~, ..., ~u_{k}~ là các nút trong mạng lưới giao thông, ~e_{i}~ là đường nối trực tiếp giữa nút ~u_{i}~ và ~u_{i+1}~ (không có nút ~u_{j}~ nào xuất hiện nhiều hơn một lần trong dãy trên, ~j = 1, 2, \dots, k~).

Biết rằng mạng lưới giao thông được xét luôn có ít nhất một đường đi từ nút 1 đến nút ~n~.

Một robot chứa đầy bình với ~w~ đơn vị năng lượng, cần đi từ trạm cứu hoả đặt tại nút 1 đến nơi xảy ra hoả hoạn ở nút ~n~, trong thời gian ít nhất có thể. Thời gian và chi phí năng lượng để robot đi trên đường nối trực tiếp từ nút ~i~ đến nút ~j~ tương ứng là ~t_{i,j}~ và ~c_{i,j}~ ~(1 \leq i, j \leq n)~. Robot chỉ có thể đi được trên đường nối trực tiếp từ nút i đến nút j nếu năng lượng còn lại trong bình chứa không ít hơn ~c_{i,j}~ ~(1 \leq i, j \leq n)~. Nếu robot đi đến một nút có trạm tiếp năng lượng (một nút có thể có hoặc không có trạm tiếp năng lượng) thì nó tự động được nạp đầy năng lượng vào bình chứa với thời gian nạp coi như không đáng kể.

Yêu cầu: Hãy xác định giá trị ~w~ nhỏ nhất để robot đi được trên một đường đi từ nút 1 đến nút ~n~ trong thời gian ít nhất.

Input

Dòng đầu tiên chứa một số nguyên dương ~n~ ~(2 \leq n \leq 500)~;

Dòng thứ hai chứa ~n~ số, trong đó số thứ ~j~ bằng 1 hoặc 0 tương ứng ở nút ~j~ có hoặc không có trạm tiếp năng lượng ~(j = 1, 2, \dots, n)~;

Dòng thứ ba chứa số nguyên dương ~m~ ~(m \leq 30 \, 000)~ là số đường nối trực tiếp có trong mạng lưới giao thông;

Dòng thứ ~k~ trong số ~m~ dòng tiếp theo chứa 4 số nguyên dương ~i~, ~j~, ~t_{i,j}~, ~c_{i,j}~ (~t_{i,j}, c_{i,j} \leq 10 \, 000~) mô tả đường nối trực tiếp từ nút ~i~ đến nút ~j~, thời gian và chi phí năng lượng tương ứng.

Hai số liên tiếp trên một dòng trong file dữ liệu cách nhau ít nhất một dấu cách.

Output

Ghi ra số nguyên dương ~w~ tìm được.

Sample Input

4
0 1 1 0
5
1 2 5 4
1 3 4 3
1 4 9 4
2 4 4 1
3 4 5 2

Sample Output

3

Note

image


Comments

Please read the guidelines before commenting.


There are no comments at the moment.