palindrom

Time limit: 0.1s Memory limit: 5MB Input: palindrom.in Output: palindrom.out

Un număr se numește palindrom dacă citit de la stânga la dreapta este identic cu numărul citit de la dreapta la stânga. De exemplu, numerele 131131 și 1567765115677651 sunt palindromuri. Un număr care nu este palindrom poate fi transformat în palindrom adăugând la dreapta sa una sau mai multe cifre.

Dat fiind un șir de nn numere naturale, scrieţi un program care să rezolve următoarele două cerinţe:

  1. să se determine numărul minim total de cifre care trebuie să fie adăugate, astfel încât fiecare valoare din șir să fie palindrom;
  2. considerând că putem adăuga cel mult SS cifre, să se determine numărul maxim de termeni palindrom aflați pe poziții consecutive în șirul obținut.

Date de intrare

Fișierul de intrare palindrom.in conţine pe prima linie numărul CC, reprezentând cerința care trebuie să fie rezolvată (11 sau 22). Pe cea de a doua linie se află un număr natural nn, reprezentând numărul de valori din șir. Pe următoarele nn linii se află cele nn numere din șir, câte un număr pe o linie. Dacă C=2C = 2, pe ultima linie a fișierului de intrare se va afla numărul natural SS reprezentând numărul maxim de cifre ce pot fi adăugate.

Date de ieșire

Fișierul de ieșire palindrom.out va conţine o singură linie pe care va fi scris răspunsul la cerinţa CC din fișierul de intrare.

Restricții și precizări

  • 1n50 000;0S500 0001 \leq n \leq 50 \ 000; 0 \leq S \leq 500 \ 000;
  • Numerele din șir au cel mult 5050 de cifre;
  • Pentru 1515 puncte, C=1C = 1 și n=1n = 1;
  • Pentru 1010 puncte, C=2C = 2, S=0S = 0, 1<n1001 < n \leq 100 și numerele din șir au cel mult 1818 cifre;
  • Pentru 1414 puncte, C=1C = 1, 1<n1 0001 < n \leq 1 \ 000 și numerele din șir au cel mult 1818 cifre;
  • Pentru 1515 puncte, C=2C = 2, S>0,1<n1 000S > 0, 1 < n \leq 1 \ 000 și numerele din șir au cel mult 1818 cifre;
  • Pentru 1616 puncte, C=2C = 2, 1000<n50 0001 000 < n \leq 50 \ 000 și numerele din șir au cel mult 1818 cifre;
  • Pentru 1313 puncte, C=1C = 1, 1000<n50 0001 000 < n \leq 50 \ 000 și numerele din șir au între 1919 și 5050 de cifre;
  • Pentru 1717 puncte, C=2C = 2, 1000<n50 0001 000 < n \leq 50 \ 000 și numerele din șir au între 1919 și 5050 de cifre;

Exemplul 1

palindrom.in

1
5
12232
131
12345
0
7717

palindrom.out

7

Explicație

C=1,n=5C = 1, n = 5.

  • Pentru a transforma 1223212232 în palindrom trebuie să adăugăm minimum două cifre (12232211223221);
  • Pentru 1234512345 trebuie să adăugăm minimum 44 cifre (123454321123454321);
  • Pentru 77177717 trebuie să adăugăm minimum o cifră (7717777177);
  • Numerele 131131 și 00 sunt deja palindromuri.

În total 2+4+1=72+4+1=7.

Exemplul 2

palindrom.in

2
7
12232
131
12345
0
7717
1244
215809
4

palindrom.out

3

Explicație

C=2,n=7,S=4C = 2, n = 7, S = 4, deci se pot adăuga maximum 44 cifre.

Putem adăuga cele 44 cifre numărului 1234512345 și obţinem o secvenţă de lungime 33 formată numai din palindromuri (131 123454321 0131 \ 123454321 \ 0).
O altă variantă este de a adăuga o cifră la 77177717 și două cifre la 12441244 și obţinem tot o secvenţă de lungime 33 formată numai din palindromuri (0 77177 1244210 \ 77177 \ 124421).
Pentru orice altă variantă, secvenţa de palindromuri obţinută are mai puțini termeni.

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