pal

Time limit: 0.5s Memory limit: 16MB Input: pal.in Output: pal.outPoints by default: 10p

Micul Prinț a ajuns în țara numerelor palindrom cu număr impar de cifre unde a primit de la sfetnicul regelui o listă care conține NN numere naturale, fiecare cu număr impar de cifre. Un număr este palindrom dacă prima lui cifră este egală cu ultima, a doua cu penultima, ș.a.m.d. Acesta i-a transmis că regele este foarte bolnav. Odată cu regele, numerele din listă s-au îmbolnăvit și ele. Sfetnicul i-a spus că lista corectă poate fi obținută prin înlocuirea fiecărui număr din ea cu cel mai mic palindrom mai mare sau egal cu numărul respectiv.

După ce a urmat recomandarea sfetnicului, Micul Prinț a constatat că în lista corectă obținută toate palindromurile sunt distincte. Uitându-se mai cu atenție la palindromurile din această listă, a observat că există perechi de palindromuri în care cel mai mic se poate obține din cel mai mare prin ștergerea aceluiași număr de cifre de la ambele capete. De exemplu pentru perechea 75313577531357 și 313313 palindromul 313313 se obține din 75313577531357 prin eliminarea a câte două cifre de la ambele capete ale sale.
Considerăm un șir de palindromuri din lista corectă și notăm cu XX valoarea maximă a acestui șir. Vom spune că șirul este magic dacă toate palindromurile din el se pot obține după metoda descrisă mai sus, din palindromul de valoare XX. Un exemplu de șir magic este 4,53435,7534357,897534357984, 53435, 7534357, 89753435798, presupunând că toate aceste numere se regăsesc în lista corectă.

Cerință

Scrieți un program care citește numerele din lista primită de la sfetnicul regelui și afișează:

  1. Lista corectă obținută de Micul Prinț;
  2. Numărul de elemente ale celui mai lung șir magic care se poate obține din lista corectă;
  3. Palindromurile din care este format cel mai lung șir magic, afișate în ordine crescătoare. Dacă există mai multe astfel de șiruri în lista corectă a Micului Prinț, se va afișa cel în care ultimul număr este cel mai mare.

Date de intrare

Fișierul de intrare pal.in conţine pe prima linie numărul natural PP, care nu poate avea decât valorile 1,2sau31, 2 sau 3 și indică numărul cerinței care va fi rezolvată. Pe a doua linie numărul natural NN de numere de pe lista primită de la sfetnicul regelui. Pe a treia linie se află numerele naturale din lista primită de la sfetnic, separate prin câte un spațiu.

Date de ieșire

Fișierul de ieșire pal.out va conţine pe prima linie răspunsul la cerința rezolvată. Dacă s-a rezolvat prima cerință, fișierul de ieșire va conține un șir de NN numere naturale, separate prin câte un spațiu, reprezentând numerele din lista corectă, în ordinea corespunzătoare listei inițiale. Dacă s-a rezolvat cerința 22, pe prima linie a fișierului de ieșire se va scrie lungimea celui mai lung șir magic. Dacă s-a rezolvat cerința 33, fișierul de ieșire va conține numerele determinate și afișate conform cerinței.

Restricții și precizări

  • 0<N50 0000 < N \leq 50 \ 000;
  • Numerele de pe lista sfetnicului sunt naturale nenule și fiecare are cel mult 1717 cifre;
  • Pentru rezolvarea corectă a primei cerinţe se acordă 2020 de puncte, pentru rezolvarea corectă a celei de a doua cerințe se acordă 2020 de puncte, iar pentru rezolvarea corectă a celei de a treia cerințe se acordă 5050 de puncte.

Exemplul 1

pal.in

1
3
345 214 64325

pal.out

353 222 64346

Explicație

Șirul palindromurilor de pe lista corectă obținută de Micul Prinț.

Exemplul 2

pal.in

2
8
2 3 120 4 432 5643461 7 21211

pal.out

3

Explicație

Lista corectă conține palindromurile 2 3 121 4 21212 434 5643465 72 \ 3 \ 121 \ 4 \ 21212 \ 434 \ 5643465 \ 7 și cel mai lung șir magic este 3 434 56434653 \ 434 \ 5643465.

Exemplul 3

pal.in

3
8
2 3 5643461 7 120 4 21211 432

pal.out

3 434 5643465

Explicație

Șirul magic 2 121 212122 \ 121 \ 21212 are aceeași lungime dar se termină într-un număr mai mic.

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