Cub

Time limit: 0.2s Memory limit: 20MB Input: cub.in Output: cub.out

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 N×NN \times 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: ABCDABCD - elementul (1,1)(1,1) în AA şi elementul (N,N)(N,N) în CC
  • Faţa 2: DCCDDCC’D’ - elementul (1,1)(1,1) în DD şi elementul (N,N)(N,N) în CC’
  • Faţa 3: BADCB’A’D’C’ - elementul (1,1)(1,1) în BB’ şi elementul (N,N)(N,N) în DD’
  • Faţa 4: BAABBAA’B’ - elementul (1,1)(1,1) în BB şi elementul (N,N)(N,N) în AA’
  • Faţa 5: CBBCCBB’C’ - elementul (1,1)(1,1) în CC şi elementul (N,N)(N,N) în BB’
  • Faţa 6: ADDAADD’A’ - elementul (1,1)(1,1) în AA şi elementul (N,N)(N,N) în DD’

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 NN şi KK, separate printr-un spaţiu, reprezentând lungimea laturii cubului, respectiv numărul trapelor de acces. Pe a doua linie avem numerele naturale FF, LL, CC, separate prin spaţiu, desemnând pătratul unitate pe care se află iniţial cosmonautul, unde F{1,2,3,4,5,6}F \in \{1,2,3,4,5,6\} reprezintă numărul unei feţe a cubului, iar LL şi CC reprezintă coordonatele poziţiei iniţiale a cosmonautului, relative la colţul (1,1)(1,1) al feţei cu numărul FF (LL – numărul liniei, CC – numărul coloanei). Pe următoarele KK linii se află câte 33 numere naturale, separate prin spaţiu, reprezentând coordonatele celor KK trape de acces (numărul feţei, numărul liniei, respectiv numărul coloanei).
Pe următoarele 6N6 \cdot N linii se află cele 66 matrice pătratice care descriu feţele cubului, având elemente din mulţimea 0,1{0, 1} (00 – şină de acces, 11 - pătrat inaccesibil). Elementele unei feţe sunt date pe linii, de la (1,1)(1,1) până la (N,N)(N,N).

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 LGLG, 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 TT, reprezentând numărul trapelor de acces aflate la distanţă minimă faţă de poziţia iniţială a cosmonautului.

Restricții și precizări

  • 1N501 \leq N \leq 50;
  • 1F61 \leq F \leq 6;
  • 1L,CN1 \leq L, C \leq N;
  • 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 1212 şi uneşte elementul (2,3)(2,3) de pe faţa 22 cu elementul (2,2)(2,2) de pe faţa 55. Cealaltă trapă de acces se află pe faţa 33, într-o poziţie inaccesibilă, deci numărul trapelor aflate la distanţa minimă faţă de poziţia de start este 11.

Log in or sign up to be able to send submissions!