10570: Сума на матриці


Відправити розв'язок

Бали: 100 (partial)
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Brain****, C, C++, Java, Pascal, Python, v8js

Заданий двовимірний масив з \(N\) рядків та \(M\) стовпчиків.
Вам потрібно ефективно відповідати на запити \(R1\) \(C1\) \(R2\) \(C2\) - що означає порахувати суму всіх чисел рядки яких лежать на відрізку \([R1..R2]\), а стовпчики на відрізку \([C1..C2]\)

Формат вхідних даних

В першому рядку задані два цілих числа \(N\), \(M\) - розміри масиву.(\(1 \le N,M \le 1000\))
В наступних \(N\) рядках міститься по \(M\) чисел \(Aij\) - значення елементів масиву (\(1 \le Aij \le 1000\)).
В наступному рядку число \(Q\) - кількість запитів. (\(1 \le Q \le 10^6\))
В кожному з наступних \(Q\) рядків міститься чотири числа \(R1,C1,R2,C2\) що позначаюють запит (\(1 \le R1 \le R2 \le N\) , \(1 \le C1 \le C2 \le M\))

Формат вихідних даних

Для кожного запиту в окремому рядку виведіть відповідь

Приклад вхідних даних

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

Приклад вихідних даних

24
18
16
9
12

Коментарі

Ще немає коментарів.