alarma

Time limit: 0.05s Memory limit: 2MB Input: alarma.in Output: alarma.out

Părinţii lui Gigel i-au făcut cadou de ziua lui un mobil mai ciudat. Fericit, Gigel vrea să nu întârzie mâine la prima oră de la şcoală ca să le arate cât mai repede mobilul colegilor. El are însă probleme cu trezitul de dimineaţă. Din fericire, mobilul are şi alarmă. Pentru a seta momentul de timp la care se declanşează alarma, datele trebuie introdus în formatul "ora şi minutul" HHMM\text{HHMM} (exact 44 cifre). Primele 22 cifre reprezintă ora, iar ultimele două cifre exprimă minutele. Gigel a observat că dacă introduce ora 7474, pe ecran este afişată ora 0202, adică restul împărţirii la 2424. În mod asemănător, dacă tastează minutul 8484 pe ecran, se va afişa minutul 2424 (restul împărţirii la 6060). Dacă Gigel vrea să se trezească la 08260826 (ora 88 şi 2626 de minute), el poate tasta 08260826 sau 56865686.

Dispunerea celor 1010 taste corespunzătoare cifrelor 0,1,...,90, 1, ..., 9 este una specială, în sensul că pe mobil există şi multe alte taste, iar cifrele au o dispunere aleatoare. De exemplu, dacă tastele mobilului lui Gigel sunt dispuse pe 55 linii şi 66 coloane, numerotate de la 11 la 55 şi respectiv de la 11 la 66, atunci el ar putea avea dispuse tastele numerice ca în figura alăturată
Pentru a seta alarma, Gigel vrea să consume cât mai puţine calorii. Numărul de calorii consumate ca să deplaseze degetul de la tasta AA, situată pe linia xAx_A şi coloana yAy_A, la tasta BB, situată pe linia xBx_B şi coloana yBy_B, se calculează dupa formula:
Calorii(A,B)=xA – xB+yA – yB\text{Calorii}(A, B) = |x_A \ – \ x_B| + |y_A \ – \ y_B|
Dacă tastele sunt dispuse ca în figura de mai sus şi considerând că tasta 11 se afla pe linia 11 şi coloana 11, pentru a tasta 56865686, Gigel consuma 1111 calorii, astfel:
Calorii(5,6)+Calorii(6,8)+Calorii(8,6)=(52+13)+(21+35)+(12+53)=\text{Calorii}(5, 6) + \text{Calorii}(6, 8) + \text{Calorii}(8,6) = (|5 - 2| + |1 - 3|) + (|2 - 1| + |3 - 5|) + (|1 - 2| + |5 - 3|) =
=(3+2)+(1+2)+(1+2)=11= (3 + 2) + (1 + 2) + (1 + 2) = 11

Cerinţă

Fiind date coordonatele tastelor corespunzătoare cifrelor de la 00 la 99 şi momentul de timp la care vrea să se trezească Gigel, scrieţi un program care determină cele 44 cifre care trebuie tastate, astfel încât numărul de calorii consumate să fie minim. Dacă există mai multe soluţii, atunci se va afişa cea pentru care numărul tastat este minim.

Date de intrare

Primele 1010 linii din fişierul de intrare alarma.in conţin perechi de numere naturale nenule, xi yix_i \ y_i, separate printr-un spaţiu, reprezentând coordonatele tastei numerice corespunzătoare cifrei i,0i9i, 0 \leq i \leq 9, în ordinea crescătoare a valorilor cifrelor de pe taste. Pe a unsprezecea linie se află 44 cifre care reprezintă momentul de timp la care Gigel doreşte să se trezească, în formatul HHMM\text{HHMM}.

Date de ieşire

În fişierul de ieşire alarma.out se afişează pe prima linie un număr natural reprezentând numărul minim de calorii consumat, iar pe cea de-a doua linie, cele patru cifre pe care le tastează pentru setarea alarmei.

Restricţii şi precizări

  • Coordonatele xix_i şi yiy_i ale unei taste reprezintă linia şi respectiv coloana unde este situată tasta numerică ii
  • 1xi99;1yi991 \leq x_i \leq 99; 1 \leq y_i \leq 99 pentru orice valoare a lui ii de la 00 la 99.
  • 0numa˘rul reprezentat de primele doua˘ cifre HH este natural230 \leq \text{numărul reprezentat de primele două cifre HH este natural} \leq 23
  • 0numa˘rul reprezentat de ultimele doua˘ cifre MM este natural590 \leq \text{numărul reprezentat de ultimele două cifre MM este natural} \leq 59
  • Pentru determinarea corectă a numărului minim de calorii consumat se acordă 40%40\% din punctaj, iar pentru determinarea corectă a celor 44 cifre tastate se acordă 60%60\% din punctaj

Exemplu

alarma.in

1 2
71 1
18 25
12 2
82 73
3 1
52 3
3 35
2 54
1 93
0124

alarma.out

179
9784

Explicatie

Calorii(9,7)+Calorii(7,8)+Calorii(8,4)=(31+9335)+(32+5435)+(822+7354)=2+58+1+19+80+19=179\text{Calorii}(9, 7) + \text{Calorii}(7, 8) + \text{Calorii}(8, 4) = (|3 - 1| + |93 - 35|) + (|3 - 2| + |54 - 35|) + (|82 - 2| + |73 - 54|) = 2 + 58 + 1 + 19 + 80 + 19 = 179

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