Omul păianjen (Spiderman) sare de pe o clădire pe alta, aflată în imediata vecinătate, în nord
, est
, sud
sau vest
. Clădirile din cartierul omului păianjen au o înălţime exprimată în numere naturale şi sunt aşezate pe m
rânduri, câte n
pe fiecare rând. Spiderman va alege să sară pe una dintre clădirile vecine, care are înălţimea mai mică sau egală, iar diferenţa de înălţime este minimă. Dacă există mai multe clădiri vecine de aceeaşi înălţime, omul păianjen aplică ordinea preferenţială nord
, est
, sud
, vest
, dar nu sare încă o dată pe o clădire pe care a mai sărit. Scopul omului păianjen este acela de a reuşi să facă un număr maxim de sărituri succesive.
Cerința
Scrieţi un program care determină numărul maxim de sărituri succesive, pe care îl poate efectua, pornind de la oricare dintre clădiri, precum şi poziţiile clădirilor care formează drumul maxim.
Date de intrare
Fişierul de intrare spider.in
conţine, pe prima linie, două numere naturale, m
şi n
, despărţite printr-un spaţiu. Fiecare dintre următoarele m
rânduri conţine n
numere naturale, separate prin câte un spaţiu, reprezentând înălţimile clădirilor.
Date de ieșire
În fişierul de ieşire spider.out
va conţine, pe prima linie, un singur număr natural k
, reprezentând numărul maxim de sărituri. Următoarele k
linii vor conţine câte două numere naturale, separate printr-un spaţiu, reprezentând coordonatele clădirilor care formează drumul maxim, în ordinea parcurgerii. Dacă există mai multe soluţii, în fişierul de ieşire se va scrie drumul care porneşte de la poziţia (i, j)
cu i
minim, iar dacă există mai multe soluţii cu acelaşi i
minim, se va scrie în fişier soluţia cu i
şi j
de valoare minimă.
Restricții și precizări
0 < m , n ≤ 1.000
- Înălţimile clădirilor sunt numere naturale din intervalul
[1 , 10.000.000]
- În orice zonă pătratică de
2×2
clădiri vecine există cel mult2
clădiri de aceeaşi înălţime.
Exemplu:
spider.in
5 5 35 38 42 40 50 34 38 30 75 50 70 78 88 86 30 39 90 88 23 25 35 80 89 90 34
spider.out
8 5 4 5 3 4 3 3 3 3 4 2 4 2 5 1 5 1 4
Explicație
Spiderman porneşte de pe blocul de 90
de metri aflat în poziţia (5, 4)
, face 8
sărituri şi ajunge în poziţia (1, 4)
, de unde nu mai are posibilităţi de a sări.