Recent, Bob s-a alăturat marinei de război a României, iar acesta a fost încredințat cu sarcina de a pilota un elicopter. În prima lui misiune, el va zbura deasupra unei zone care se află în prezent într-un conflict. Se dă harta topografică a acestui perimetru sub forma unei matrici x , unde poziția în aceasta reprezintă înălțimea în acel punct.
Elicopterul se poate deplasa în nord, sud, est, vest, sus si jos cu o unitate, fiecare mișcare luând timpul de o secundă. Însă acesta nu are voie să iasă din această zonă, fiind extrem de periculos.
După cum știm cu toții, Bob este o persoană foarte precaută. El vrea să afle cât de mult îi ia să ajungă la sol în orice scenariu, în caz de o situație urgentă ( știm că Bob a ajuns la sol dacă altitudinea lui curentă coincide cu cea a poziției pe care se află ).
Cerință
Pentru orice poziție unde și , află timpul minim de a ateriza știind că Bob se află la altitudinea , deasupra tuturor altitudinilor din matrice.
Date de intrare
Prima linie conține un singur număr - numărul de teste. Descrierea unui test este următoarea:
Prima linie conține trei numere întregi, , și . Pe următoarele linii se află câte valori, fiecare reprezentând înălțimea în acel punct.
Date de ieșire
Pentru fiecare test afișați răspunsul dorit, după următorul format:
Câte linii pe care se află câte valori, fiecare reprezentând timpul minim de aterizare din acel punct.
Restricții și precizări
Din cauza numărului mare de date de intrare, respectiv ieșire, vă recomandăm să adăugați următoarele linii de cod la începutul funcției main()
.
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
- Notăm cu suma valorilor lui peste toate testele
- numerele din matrice
- > valoarea maximă din matrice
# Punctaj Restricții 1 14 2 18 3 20 4 48 fără alte restricții
Exemplu
stdin
2
2 2 5
0 1
2 3
5 5 6
2 0 1 2 0
5 5 1 3 2
1 0 3 0 0
4 4 3 5 0
4 0 3 0 4
stdout
4 3
3 2
2 2 3 4 5
1 1 2 3 4
2 2 3 2 3
2 2 2 1 2
2 3 3 2 2
Explicație
În primul test, un exemplu de strategie ar fi următorul:
- decolează la (1, 1), aterizează la (2, 1)
- decolează la (1, 2), aterizează la (2, 2)
- decolează la (2, 1), aterizează la (2, 1)
- decolează la (2, 2), aterizează la (2, 2)