#2438
pal
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 N
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 7531357
și 313
palindromul 313
se obține din 7531357
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 X
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 X
. Un exemplu de șir magic este 4
, 53435
, 7534357
, 89753435798
, presupunând că toate aceste numere se regăsesc în lista corectă.
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.
OJI 2018
Problema | pal | Operații I/O |
pal.in /pal.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 16 MB
/
Stivă 8 MB
|
Id soluție | #54968942 | Utilizator | |
Fișier | pal.cpp | Dimensiune | 2.32 KB |
Data încărcării | 14 Decembrie 2024, 09:40 | Scor / rezultat | 100 puncte |
pal.cpp: In function 'void load()': pal.cpp:15:26: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%lld", &x); ^ pal.cpp: In function 'int main()': pal.cpp:59:32: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("pal.in","r",stdin); ^ pal.cpp:60:34: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("pal.out","w",stdout); ^ pal.cpp:61:26: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d",&P, &N); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 2 | 2 | ||
2 | 0 secunde | OK. | 2 | 2 | ||
3 | 0.004 secunde | OK. | 2 | 2 | ||
4 | 0.016 secunde | OK. | 2 | 2 | ||
5 | 0.024 secunde | OK. | 2 | 2 | ||
6 | 0.024 secunde | OK. | 2 | 2 | ||
7 | 0.032 secunde | OK. | 2 | 2 | ||
8 | 0.036 secunde | OK. | 2 | 2 | ||
9 | 0.04 secunde | OK. | 2 | 2 | ||
10 | 0.04 secunde | OK. | 2 | 2 | ||
11 | 0 secunde | OK. | 2 | 2 | ||
12 | 0 secunde | OK. | 2 | 2 | ||
13 | 0 secunde | OK. | 2 | 2 | ||
14 | 0.012 secunde | OK. | 2 | 2 | ||
15 | 0.032 secunde | OK. | 2 | 2 | ||
16 | 0.068 secunde | OK. | 2 | 2 | ||
17 | 0.072 secunde | OK. | 2 | 2 | ||
18 | 0.072 secunde | OK. | 2 | 2 | ||
19 | 0.068 secunde | OK. | 2 | 2 | ||
20 | 0.072 secunde | OK. | 2 | 2 | ||
21 | 0 secunde | OK. | 5 | 5 | ||
22 | 0 secunde | OK. | 5 | 5 | ||
23 | 0 secunde | OK. | 5 | 5 | ||
24 | 0.012 secunde | OK. | 5 | 5 | ||
25 | 0.032 secunde | OK. | 5 | 5 | ||
26 | 0.068 secunde | OK. | 5 | 5 | ||
27 | 0.072 secunde | OK. | 5 | 5 | ||
28 | 0.072 secunde | OK. | 5 | 5 | ||
29 | 0.068 secunde | OK. | 5 | 5 | ||
30 | 0.072 secunde | OK. | 5 | 5 | ||
31 | 0 secunde | OK. | 3 | 3 | Exemplu | |
32 | 0 secunde | OK. | 3 | 3 | Exemplu | |
33 | 0 secunde | OK. | 4 | 4 | Exemplu | |
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema pal face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.