Fişierul intrare/ieşire:spider.in, spider.outSursăONI 2013, clasa a 9-a
AutorIstvan BudaiAdăugată descipianusFMI Ciprian Olariu scipianus
Timp execuţie pe test1 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Spider

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ţă

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

  • 0 < m, n ≤1000
  • Î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 mult 2 clădiri de aceeaşi înălţime.

Exemplu

spider.inspider.out
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
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.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content