|
Сумма в ромбе
(Время: 3 сек. Память: 16 Мб Сложность: 55%)
Дано клетчатое поле размера N×M, в каждой клетке которого записано целое число. Назовем ромбом с центром в клетке (x,y) и диагональю 2×d+1 (d – неотрицательное целое число) множество клеток (x',y'), которые удовлетворяют неравенству:
|x – x'| + |y – y'| ≤ d .
Ромб содержит ровно d2 + (d+1)2 клеток с целочисленными координатами. Если среди всех клеток, принадлежащих ромбу, нет таких, которые лежат за границей заданного поля, то ромб принадлежит клетчатому полю. В дальнейшем будем рассматривать только ромбы, принадлежащие клетчатому полю.
Под суммой в ромбе будем понимать сумму всех чисел, записанных в ячейках поля, координаты которых принадлежат заданному ромбу.
Например, на рисунке справа показан ромб на клетчатом поле 5×5 с центром в клетке (3,3) и диагональю 5, сумма в котором равна -88, а количество клеток, принадлежащих ромбу, равно 22 + 32 = 13.
Вам дано клетчатое поле с числами, записанными в его ячейках, и q запросов, каждый из которых характеризуется одним целым числом ci. Ваша задача среди всех принадлежащих полю ромбов найти такие, которые содержат ровно ci клеток, среди них найти ромбы с максимальной суммой и найти значение этой максимальной суммы.
Входные данные
В первой строке входного файла INPUT.TXT записаны два натуральных числа N и M – высота и ширина поля (N, M < 512). Каждая из последующих N строк содержит M целых чисел, записанных через пробел – числа, записанные в ячейках клетчатого поля. Числа в ячейках клетчатого поля по модулю не превосходят 2×104. В следующей строке указано одно неотрицательное целое число q, не превышающее 2×105 – количество запросов. Затем в q строках указано по одному целому числу ci (|ci| ≤ 106).
Выходные данные
В выходной файл OUTPUT.TXT в ответ на i-й запрос в отдельной строке укажите три числа: сначала ni – количество различных ромбов, в которых ровно ci клеток, затем mi – количество тех из них, сумма в которых максимальна среди всех ni ромбов, и si – значение максимальной суммы соответственно. Если нет ни одного подходящего ромба, то выведите ni = mi = si = 0.
Пример
№ | INPUT.TXT | OUTPUT.TXT |
1 |
5 5
0 0 1 0 0
0 1 1 1 0
1 1 -100 1 1
0 1 1 1 0
0 0 1 0 0
5
0
1
5
13
25 | 0 0 0
25 12 1
9 4 3
1 1 -88
0 0 0 |
Пояснение к примеру
Клетчатое поле в примере совпадает с полем, изображенным на рисунке в условии задачи. В нем есть только ромбы, в которых 1, 5 или 13 клеток, и их 25, 9 и 1 соответственно. Нетрудно видеть, что:
- максимальная сумма в ромбах, в которых ровно 1 клетка, равна 1, и таких клеток 12.
- максимальная сумма в ромбах, в которых ровно 5 клеток, равна 3. Это 4 ромба с координатами центров (2,2), (2,4), (4,2) и (4,4).
- максимальная сумма в ромбах, в которых ровно 13 клеток, равна -88, и такой ромб единственный.
Система оценивания
Решения, работающие только для N, M ≤ 50 и q ≤ 10, будут оцениваться в 30 баллов.
Решения, работающие только для ci ≤ 40, будут оцениваться в 40 баллов.
Решения, работающие только для N, M ≤ 50, будут оцениваться в 50 баллов.
Автор задачи
Дмитрий Козырев
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
| |