Задача №111778. Мобильные телефоны

В области Тампере существуют станции обслуживания мобильных телефонов четвертого поколения, которые работают следующим образом. Вся область разделена на квадраты. Квадраты формируют матрицу S×S, строки и столбы которой нумеруются с 0 до S - 1. Каждый квадрат содержит одну станцию обслуживания. Количество активных мобильных телефонов внутри квадрата может меняться, потому что телефон может перемещаться из одного квадрата в другой или выключаться. Временами каждая станция обслуживания передает сведения об изменении в количестве активных телефонов на главную станцию обслуживания (вместе с номером строки и столбца матрицы).

Напишите программу, которая принимает эти сведения и отвечает на запросы о текущем количестве активных мобильных телефонов в любой прямоугольной области.

Входные данные

Каждый запрос к программе описывается на отдельной строке и состоит из одного целого числа, описывающего команду, а также из дополнительных параметров команды в соответствии со следующей таблицой:

Команда Параметры Значение
0 S Инициализирует матрицу размером S×S, состоящую только из нулей. Эта команда поступает один раз и является самой первой командой.
1 X Y A Добавить число A к количеству активных мобильных телефонов в квадрате (X;Y). Число A может быть как положительным, так и отрицательным.
2 L B R T Выдать текущую сумму количеств активных мобильных телефонов во всех квадратах (X;Y), где LXR, BYT.
3   Прервать программу. Эта команда поступает один раз и является самой последней командой.

Все значения всегда лежат в правильном диапазоне, поэтому нет необходимости их проверять. В частности, если число A отрицательное, то число активных телефонов в каком-либо квадрате все равно не станет меньше нуля. Индексы начинаются с 0, поэтому, например, для таблицы размера 4×4 имеем 0 ≤ X ≤ 3, 0 ≤ Y ≤ 3.

Выходные данные

Ваша программа не должна отвечать ни на какую команду, кроме 2. Если команда 2, то ваша программа должна вывести единственную строку, содержащую одно целое число — ответ на этот запрос.

Ограничения

Размер таблицы S×S 1×1 ≤ S×S ≤ 1024×1024
Значение ячейки в любой момент времени V 0 ≤ V ≤ 215 - 1 (= 32767)
Величина обновления A -215A ≤ 215 - 1 (= 32767)
Количество команд U 3 ≤ U ≤ 60002
Максимальное количество активных телефонов во всей таблице M M = 230
Примеры
Входные данные
0 4
1 1 2 3
2 0 0 2 2
1 1 1 2
1 1 2 -1
2 1 1 2 3
3
Выходные данные
3
4
Сдать: для сдачи задач необходимо войти в систему