10664: 2D large matrix query
Матриця розміром \(NxN\) заповнена спочатку нулями.
Необхідно обробляти наступні запити:
1 \(R\) \(C\) \(X\) - Додати до клітинки з рядка \(R\), стовпчика \(C\) число \(X\) ( \(A[R][C]+=X\))
2 \(R1\) \(C1\) \(R2\) \(C2\) - знайти суму чисел в прямокутнику обмеженому рядками \(R1..R2\) та стовпчиками \(C1..C2\)
Формат вхідних даних
В першому рядку число \(N\) - розмір матриці (\(1 \le N \le 2*10^6\))
В кожному з наступних рядків міститься опис відповідного запиту
кожен запит починається числом \(type\) - яке позначає тип запиту (1,2,3)
Якщо \(type=1\) то далі йдуть два числа \(R\) \(C\) (\(1 \le R,C \le N\))
Якщо \(type=2\) то далі йдуть чотири числа \(R1\) \(C1\) \(R2\) \(C2\) (\(1 \le R1 \le R2 \le N\)), (\(1 \le C1 \le C2 \le N\))
Якщо \(type=3\) треба припинити роботу програми
Кількість запитів не перевищуватиме \(2*10^5\)
Формат вихідних даних
Для кожного запиту типу 2 виведіть відповідь в окремому рядку
Приклад вхідних даних-1
5
1 1 1 7
1 2 2 8
2 1 1 5 5
1 3 3 9
2 1 1 5 5
3
Приклад вихідних даних-1
15
24
Коментарі