Второй открытый Зеленоградский турнир 2006

Тепловое излучение

В ходе длительной работы группа ученых разработала новейший трехмерный процессор. Из-за огромных частот, на которых он работает, кристалл выделяет большое количество тепла. Даже с применением новейшей системы охлаждения, часть узлов процессора выделяет слишком много энергии. С помощью специальных методов анализа для каждого блока удk 2;лось установить количества тепла (при наличии источника охлаждения) которое он выделяет в минуту. Теперь разработчикам процессора нужна ваша помощь. По данной трехмерной матрице необходимо найти подматрицу, сумма тепловыделения каждого элемента которой максимальна. Эти данные будут использованы учеными для реконструкции блоков вхl 6;дящих в эту "горячую" подматрицу с целью понижения их теплоотдачи.

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

t – число тестов [t <= 99], затем следуют t тестов
Каждая тестовая последовательность начинается с 3ёх целых чисел: x, y, z - размеров матрицы. [5 <= x, y, z <= 50]. Затем следует описание x прямоугольных подматриц размером y на z. Всего x*y*z целых чисел, каждое из этих чисел не превосходит по модулю 10000.

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

Для каждого теста необходимо вывести 6 чисел: x1, y1, z1, x2, y2, z2 каждая тройка задает один из двух противоположных углов подматрицы выделяющей максимальное количество тепловой энергии в минуту. [1 <= x1 <= x2 <= x] [1 <= y1 <= y2 <= y] [1 <= z1 <= z2 <= z]

Начисление очков

Количество очков, полученное за тестовую последовательность score = (x*y*z*T)/MAX, где T = суммарная тепловая энергия, выделяемая найденной вами подматрицей, а MAX - некоторый коэффициент, определенный для данной матрицы (примерно равный точному решению). Если сумма элементов найденной вами подматрицы равна отрицательному числу, то за данный тест вы получите 85;оль очков. Общее число полученных за решение равно сумме всех очков заработанных за каждый из тестов в отдельности.

Пример

Входные данные:
1
5 5 5
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
-1 -1 -10 -1 -1
-1 -1 -10 -1 -1
-1 -1 -10 -1 -1
-1 -1 -10 -1 -1
-1 -1 -10 -1 -1
20 2 2 2 20
20 2 2 2 20
20 2 2 2 20
20 2 2 2 20
20 2 2 2 20
5 5 5 5 5
5 5 5 5 5
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
-10 10 -10 10 -10
-10 10 -10 10 -10
-10 10 -10 10 -10
-10 10 -10 10 -10
-10 10 -10 10 -10


Выходные данные:
2 1 1 4 5 5

Начисление очков:
score = 5*5*5*(-70+230+65)/295 = 95.338983