Pizza Delivery

Xem dạng PDF

Gửi bài giải

Điểm: 1,14 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Nguồn bài:
COCI 6th 09
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Công việc của Ivana là chuyển bánh pizza. Hàng ngày, anh ta nhận được 1 danh sách các địa điểm nhận bánh.

Thành phố được mô tả là bản đồ ~R*C~ ô, ~(1, 1)~ cho đến ~(R, C)~. Cho phép di chuyển từ 1 ô sang trái hoặc phải. Chỉ được phép đi lên/xuống ở cột ~1~ hoặc ~C~.

Ivana xuất phát từ ~(1,1)~ và mang theo mọi bánh pizza cần chuyển. Tại mỗi ô, Ivana biết thời gian mà anh ta cần để đi qua ô đó. Tính thời gian nhỏ nhất để cung cấp tất cả các pizza. Biết rằng bánh pizza phải được cung cấp theo đúng thứ tự xuất hiện trong danh sách yêu cầu

Input

Dòng đầu là hai số ~R,C~ (~1 \le R \le 2000~, ~1 \le C \le 200~), ~R~ dòng tiếp theo, mỗi dòng ~C~ số nguyên ~\ge 0~ và ~\le 5000~.

Dòng sau đó chứa ~D~ ~(1 \le D \le 200000)~, số pizza cần chuyển. ~D~ dòng tiếp theo, mỗi dòng hai số ~A, B~ ~(1 \le A \le R, 1 \le B \le C)~, vị trí nhận bánh.

Mỗi vị trí xuất hiện ~\le 1~ lần.

Output

Thời gian cung cấp pizza nhỏ nhất.

Sample Input 1

3 3
1 8 2
2 3 2
1 0 1
3
1 3
3 3
2 2

Sample Output 1

17

Sample Input 2

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

Sample Output 2

9

Note

Ở ví dụ 1, cách đi nhanh nhất là : ~(1, 1), (2, 1), (3, 1), (3, 2), (3, 3), (2, 3), (1, 3), (2, 3), (3, 3), (2, 3)~ và ~(2, 2)~. và thời gian tương ứng là ~1+2+1+0+1+2+2+2+1+2+3=17~


Bình luận

Hãy đọc nội quy trước khi bình luận.


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