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

Задача . D. Ваня и сокровище


Ваня оказался во дворце, который можно представить как таблицу из комнат размера n × m. В каждой комнате находится ровно один сундук, при этом в комнате в i-м ряду и j-м столбце находится сундук вида aij. При этом в каждом сундуке типа x ≤ p - 1 находится ключ, открывающий любой сундук типа x + 1, а все сундуки типа 1 не заперты. Сундук типа p ровно один, и в нём находится сокровище.

Ваня начинает в клетке (1, 1) (верхний левый угол). Какое минимальное расстояние ему нужно пройти, чтобы получить сокровище? Считается, что расстояние между двумя клетками (r1, c1) (то есть клетки в строке r1 и столбце c1) и (r2, c2) равно |r1 - r2| + |c1 - c2|.

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

В первой строке входных данных записаны три числа n, m и p (1 ≤ n, m ≤ 300, 1 ≤ p ≤ n·m) — размеры дворца и количество типов сундуков соответственно.

В каждой из последующих n строк находится по m целых чисел aij (1 ≤ aij ≤ p) — типы сундуков в соответствующих комнатах. Гарантируется, что для любого x от 1 до p найдётся хотя бы один сундук такого типа (то есть существуют r и c, такие что arc = x). Также гарантируется, что сундук типа p ровно один.

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

Выведите единственное целое число — минимальное расстояние, которое потребуется преодолеть Ване, чтобы забрать сокровище из сундука типа p.


Примеры
Входные данныеВыходные данные
1 3 4 3
2 1 1 1
1 1 1 1
2 1 1 3
5
2 3 3 9
1 3 5
8 9 7
4 6 2
22
3 3 4 12
1 2 3 4
8 7 6 5
9 10 11 12
11

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

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