#1484. Đếm phần thưởng (Mã bài: BONUS)

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Alice là người chiến thắng trong một cuộc thi “Tìm hiểu kiến thức vũ trụ” và được nhận phần thưởng theo cách sau:

Các phần thưởng được bố trí trên một bảng có kích thước m \times n . Các dòng của bảng được đánh số từ 1 đến m , từ trên xuống dưới và các cột của bảng được đánh số từ 1 đến n , từ trái qua phải. Ô nằm trên giao của dòng i và cột j được gọi là o(i, j) và trên ô đó chứa một món quà loại a_{i,j} . Giữa hai ô (x, y) (u, v) bất kì chứa cùng một loại quà, luôn tồn tại một đường đi qua các ô chung cạnh cũng chứa loại quà đó.

Để nhận phần thưởng, Alice cần trả lời truy vấn : “Có bao nhiêu loại quà khác nhau gồm các ô được giới hạn bởi hình chữ nhật có góc trái trên ở ô (x_1, y_1) và góc phải dưới ở ô (x_2, y_2) ?”.

q truy vấn như vậy, Alice cần trả lời được tất cả các câu hỏi để nhận thưởng. Hãy giúp Alice trả lời các truy vấn này.

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên dương m, n ( 1 \le m, n \le 1000 ) là kích thước của bảng.
  • Dòng thứ i trong m dòng tiếp theo, mỗi dòng chứa n số nguyên dương. Số thứ j a_{i,j} ( 1 \le a_{i,j} \le 10^6 ).
  • Dòng tiếp theo chứa số q ( 1 \le q \le 50000 ) là số truy vấn.
  • q dòng tiếp theo, mỗi dòng ghi một truy vấn gồm 4 số nguyên dương x_1, y_1, x_2, y_2 ( 1 \le x_1 \le x_2 \le m, 1 \le y_1 \le y_2 \le n ).

Kết quả: Với mỗi truy vấn, in ra trên một dòng là kết quả tìm được

Ví dụ:

Dữ liệu:

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

Kết quả:

1
2
2
2

Giới hạn:

  • Subtask 1 (25%): 1 \le m, n, q \le 200
  • Subtask 2 (25%): 1 \le m, n \le 90
  • Subtask 3 (25%): 1 \le a_{i,j} \le 20
  • Subtask 4 (25%): không có ràng buộc nào thêm