EduBrick

F. Прямоугольник на плоскости

2500 мс · 256 МБ · всё или ничего

Дана таблица n×mn \times m, изначально нулевая. Обрабатывайте запросы:

  • 1 i j k — прибавить kk к клетке (i,j)(i, j);
  • 2 i1 j1 i2 j2 — вывести сумму по прямоугольнику от (i1,j1)(i_1, j_1) до (i2,j2)(i_2, j_2) включительно.

Формат ввода

В первой строке — числа nn, mm и qq (1≤n,m≤5001 \le n, m \le 500, 1≤q≤1051 \le q \le 10^5). Далее qq запросов; 1≤i≤n1 \le i \le n, 1≤j≤m1 \le j \le m, ∣k∣≤109|k| \le 10^9.

Формат вывода

На каждый запрос второго вида выведите сумму по прямоугольнику.

Примеры

ввод
3 3 5
1 2 2 5
1 1 3 2
2 1 1 3 3
2 2 2 2 2
2 1 1 1 2
вывод
7
5
0
ввод
1 1 2
2 1 1 1 1
1 1 1 -1000000000
вывод
0
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.