Олимпиадный тренинг

Задача . E. Озера


Дана сетка \(a\) размера \(n \times m\) из неотрицательных целых чисел, где \(a_{i,j}\) представляет глубину воды в \(i\)-й строке и \(j\)-м столбце.

Озеро — это набор ячеек, таких что:

  • Каждая ячейка в наборе имеет \(a_{i,j} > 0\)
  • Существует путь между любой парой ячеек в озере, двигаясь вверх, вниз, влево или вправо, несколько раз и не наступая на ячейку с \(a_{i,j} = 0\).

Объем озера — это сумма глубин всех ячеек в озере.

Найдите наибольший объем озера в сетке.

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

Первая строка входных данных содержит одно целое число \(t\) (\(1 \leq t \leq 10^4\)) — количество наборов входных данных в тесте.

Первая строка каждого набора содержит два целых числа \(n, m\) (\(1 \leq n, m \leq 1000\)) — размеры сетки.

Затем следуют \(n\) строк, каждая из которых содержит \(m\) целых чисел \(a_{i,j}\) (\(0 \leq a_{i,j} \leq 1000\)) — глубина воды в каждой ячейке.

Гарантируется, что сумма \(n \cdot m\) по всем наборам не превышает \(10^6\).

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

Для каждого теста выведите одно целое число — наибольший объем озера в сетке.


Примеры
Входные данныеВыходные данные
1 5
3 3
1 2 0
3 4 0
0 0 5
1 1
0
3 3
0 1 1
1 0 1
1 1 1
5 5
1 1 1 1 1
1 0 0 0 1
1 0 5 0 1
1 0 0 0 1
1 1 1 1 1
5 5
1 1 1 1 1
1 0 0 0 1
1 1 4 0 1
1 0 0 0 1
1 1 1 1 1
10
0
7
16
21

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя