Краткие правила
[https://quiz.sidenis.ru/#/tasks/king]
Напишите Java приложение под jdk 1.8.
Входные данные подаются приложению в стандартном потоке ввода (System.in). Приложение должно выводить ответ в стандартный поток вывода (System.out).
Решение проверяется на наборе тестов. Time Limit на один тест 2 секунды. За каждый непройденный тест (вердикт не АС) штраф 10 секунд. Memory Limit на один тест 256 Мб.
Решение задачи можно отправлять неограниченное количество раз. Победят те, чье решение в сумме затратит наименьшее количество процессорного времени.
Царь-задача
Дана квадратная матрица A[0...N-1, 0...N-1]
. Вашей программе могут поступать запросы двух типов:
- Вычислить сумму элементов подматрицы;
- Модифицировать отдельный элемент матрицы.
Ваша задача обработать все запросы корректно и затратив на это как можно меньше процессорного времени.
Входные данные
Первая строка содержит целое число N (1 ⩽ N ⩽ 550) — размер матрицы.
Далее следуют N строк по N целых чисел в каждой — Ai,j элементы матрицы, −108 ⩽ Ai,j ⩽ 108;0 ⩽ i,j < N.
В следующей строке записано целое число Q — количество запросов, 0 ⩽ Q ⩽ 100100.
Далее следует Q строк, каждая из которых представляет описание запроса в одном из двух форматов:
Пять целых чисел разделенных пробелом K, X1, Y1, X2, Y2 — если запрос поиска суммы в подматрице A[X1...X2, Y1...Y2]
, 0 ⩽ X1 ⩽ X2; 0 ⩽ Y1 ⩽ Y2; X1 ⩽ X2 < N; Y1 ⩽ Y2 < N; K = 1;
Четыре целых числа разделенных пробелом K, X, Y, P — если запрос модификации отдельного элемента матрицы (т.е. запрос вида A[X, Y]
= P), 0 ⩽ X < N; 0 ⩽ Y < N; −108 ⩽ P ⩽ 108; K = 2.
Выходные данные
Для каждого запроса на вычисление суммы подматрицы, необходимо вывести одно целое число — сумму подматрицы, по одному в строке, в порядке следования запросов во входных данных.
Если во входных данных нет ни одного запроса на вычисление суммы подматрицы, то выходной поток следует оставить пустым.
Пример данных
Входные данные
4
-1 -5 1 2
1 2 3 4
5 6 7 8
9 10 11 12
5
1 0 0 0 0
1 1 1 2 1
2 0 0 2
1 0 0 0 0
1 0 0 3 3
Выходные данные
-1
5
2
78
Запуск
Решение (исходный код Java приложения) запускается на сервере (Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz x 8, 8 Mb RAM, CentOS 7.5) с командной строкой:
java -Xmx256M -Xms16M -Xbatch -XX:+UseSerialGc -XX:-TieredCompilation -XX:CICompilerCount=1 Main