Staţia de cercetări astronomice ONI–2006 are forma unui cub cu latura de lungime N unităţi. Fiecare dintre cele 6 feţe ale staţiei este împărţită în pătrate cu latura unitate. Cosmonauţii însărcinaţi cu întreţinerea staţiei se pot deplasa pe suprafaţa cubului, folosind şine speciale plasate în unele dintre pătrăţelele unitate, pentru a efectua diverse reparaţii. Unele pătrate unitate, dintre cele prevăzute cu şine, conţin trape de intrare în interiorul staţiei. Din cauza radiaţiilor cosmice nocive, cosmonauţii trebuie să petreacă un timp cât mai scurt în exteriorul staţiei astfel încât, după terminarea unei reparaţii, aceştia trebuie să se reîntoarcă în interiorul staţiei utilizând cea mai apropiată trapă de acces. Cosmonautul se află iniţial într-un pătrăţel prevăzut cu şine. El se poate deplasa dintr-un pătraţel ce conţine şine, în altul, aflat în vecinătatea poziţiei curente (pe orizontală sau verticală), pătrăţel prevăzut de asemenea cu şine. Cosmonautul se poate deplasa şi de pe o faţă a cubului pe o faţă vecină, traversând latura comună. Feţele cubului sunt descrise conform figurii de mai jos.
- Faţa 1: - elementul în şi elementul în
- Faţa 2: - elementul în şi elementul în
- Faţa 3: - elementul în şi elementul în
- Faţa 4: - elementul în şi elementul în
- Faţa 5: - elementul în şi elementul în
- Faţa 6: - elementul în şi elementul în
Cerinţă
Scrieţi un program care să determine distanţa minimă de la poziţia iniţială a cosmonautului până la o trapă de acces, precum şi numărul trapelor aflate la distanţă minimă.
Date de intrare
Datele de intrare se citesc din fişierul cub.in
, care are următoarea structură: Pe prima linie se află două numere naturale şi , separate printr-un spaţiu, reprezentând lungimea laturii cubului, respectiv numărul trapelor de acces. Pe a doua linie avem numerele naturale , , , separate prin spaţiu, desemnând pătratul unitate pe care se află iniţial cosmonautul, unde reprezintă numărul unei feţe a cubului, iar şi reprezintă coordonatele poziţiei iniţiale a cosmonautului, relative la colţul al feţei cu numărul ( – numărul liniei, – numărul coloanei). Pe următoarele linii se află câte numere naturale, separate prin spaţiu, reprezentând coordonatele celor trape de acces (numărul feţei, numărul liniei, respectiv numărul coloanei).
Pe următoarele linii se află cele matrice pătratice care descriu feţele cubului, având elemente din mulţimea ( – şină de acces, - pătrat inaccesibil). Elementele unei feţe sunt date pe linii, de la până la .
Date de ieșire
Rezultatele se scriu în fişierul cub.out
, care are următoarea structură: Pe prima linie se va scrie numărul natural , reprezentând lungimea drumului minim parcurs de cosmonaut. Lungimea drumului este dată de numărul pătratelor unitate parcurse, inclusiv poziţia iniţială şi poziţia finală. Pe a doua linie se va afişa numărul natural , reprezentând numărul trapelor de acces aflate la distanţă minimă faţă de poziţia iniţială a cosmonautului.
Restricții și precizări
- ;
- ;
- ;
- Cosmonautul se află iniţial într-o poziţie accesibilă (prevăzută cu şină);
- Există cel puţin o trapă accesibilă din poziţia iniţială a cosmonautului.
Exemplu
cub.in
3 2
2 2 3
5 2 2
3 2 2
1 1 1
1 0 0
1 0 1
0 0 1
0 1 0
0 0 0
1 1 1
1 0 1
1 1 1
1 1 1
1 1 1
1 1 1
1 0 1
1 0 1
1 1 1
1 1 1
1 1 1
1 1 1
cub.out
12
1
Explicație
Traseul ilustrat are costul minim şi uneşte elementul de pe faţa cu elementul de pe faţa . Cealaltă trapă de acces se află pe faţa , într-o poziţie inaccesibilă, deci numărul trapelor aflate la distanţa minimă faţă de poziţia de start este .