Игра <<Bloxx city>>
시간 제한2초메모리 제한1024 MB
일부 집의 높이가 주어진 격자에서 높이 h인 집은 이웃에 1부터 h-1까지 모든 높이의 집이 있어야 지을 수 있을 때, 전체 높이 합이 최대가 되도록 집을 짓고 그 이동 순서를 출력한다.
문제
На новом мобильном телефоне фирмы Mokia установлена игра <<Bloxx city>>. Действие этой игры происходит на прямоугольном поле размером на .
Каждая клетка этого поля может быть пустой или в ней может находиться дом некоторой высоты. За один ход игрок может в пустой клетке построить дом. При этом дом высоты в некоторой клетке можно строить только, если в клетках, имеющих с рассматриваемой общую сторону, находятся дома всех высот от 1 до (соответственно, дом высоты 1 можно строить в любой свободной клетке поля).
Изначально на поле уже стоят некоторые дома. Цель игры --- построить дополнительные дома так, чтобы их суммарная высота была как можно большей.
Напишите программу, которая позволяет добиться этой цели.
입력
Первая строка входного файла содержит два целых числа: и (, ). Последующие строк описывают игровое поле: каждая из них содержит по чисел (), задающих высоты домов, изначально стоящих на поле. Если некоторое из чисел равно нулю, то эта клетка пуста.
출력
В первой строке выходного файла выведите максимальную возможную сумму высот домов. Во второй строке выходного файла выведите --- число ходов, которые необходимо сделать, чтобы добиться такой суммы высот. В последующих строках выведите описание этих ходов: каждая из них должна содержать по три числа: , , --- соответственно, координаты клетки, в которой строится дом, и его высоту (, ).