Matei este fascinat de numere. La școală a auzit de număr palindrom ca fiind acel număr care citit de la stânga la dreapta este identic cu numărul citit de la dreapta la stânga. El a observat că, pentru anumite numere, rearanjând toate cifrele numărului, se poate obține un număr palindrom. De exemplu, pentru numărul se pot forma următoarele palindromuri: , , , , , . Dintre toate aceste palindromuri, el îl alege pe cel mai mic, și-l numeste palindrom mic asociat.
Pentru numărul nu se poate forma niciun număr palindrom. În acest caz, Matei vrea să afle numărul minim de modificări pe care le poate efectua asupra numărului, astfel încât din cifrele lui să se poată construi un palindrom. Prin modificare se înțelege înlocuirea unei cifre cu o altă cifră. Pentru , este suficientă o singură modificare: fie se înlocuiește cifra cu cifra , fie una dintre cifrele cu cifra .
Cerință
Scrieți un program care, pentru un șir de numere naturale, să afișeze:
- Pentru fiecare număr din șir, cel mai mic palindrom asociat care se poate construi din toate cifrele sale sau , dacă acest lucru nu este posibil.
- Numărul de grupe maximale de numere alăturate din șir, în care niciun număr nu are palindrom asociat.
- Numărul total minim de modificări necesare, astfel încât toate numerele din șir să aibă un număr palindrom asociat.
Date de intrare
Fişierul de intrare palindrom.in conține:
- pe prima linie un număr natural , reprezentând cerința care trebuie rezolvată (, sau );
- pe a doua linie , având semnificația din enunț;
- pe a treia linie numere naturale, separate prin câte un spațiu, cu semnificația din enunț.
Date de ieșire
Fişierul de ieşire palindrom.out conţine:
- Pentru : numere separate printr-un spațiu, având semnificația din enunț;
- Pentru : un număr natural reprezentând numărul de grupe maximale cu proprietatea cerută;
- Pentru : un număr natural reprezentând numărul total minim de modificări necesare pentru ca toate numerele din șir să aibă un palindrom asociat.
Restricții și precizări
- Numerele din șir sunt
- O grupă maximală este o secvență de numere aflate pe poziţii consecutive în şirul dat, care nu mai poate fi extinsă nici la stânga, nici la dreapta prin adăugarea unui număr cu aceeași proprietate;
- Pentru rezolvarea corectă a cerinţei se acordă 40% din punctaj, pentru rezolvarea corectă a cerinţei se acordă 30% din punctaj, iar pentru rezolvarea corectă a cerinței se acorda 30% din punctaj.
Exemplul 1
palindrom.in
1
7
334422 1234 1003341 33009 5857 121298 911
palindrom.out
234432 -1 1034301 30903 -1 -1 191
Exemplul 2
palindrom.in
2
7
334422 1234 1003341 33009 5857 121298 911
palindrom.out
2
Explicație
Numerele fără palindrom asociat sunt , și . Ele apar în șir în două grupuri de numere alăturate: și .
Exemplul 3
palindrom.in
3
7
334422 1234 1003341 33009 5857 121298 911
palindrom.out
4
Explicație
Numerele care nu au palindrom asociat:
- – sunt necesare modificari (de exemplu cifra se modifică în cifra și cifra în cifra );
- - este necesară o singură modificare (de exemplu cifra se modifică în cifra );
- – este necesară o singură modificare (modificăm cifra în cifra ).
Numărul total de modificări este