Fişierul intrare/ieşire:accesibil.in, accesibil.outSursăOJI 2017 clasa a 6-a
AutorMiana ArisanuAdăugată defrancuCristian Francu francu
Timp execuţie pe test0.4 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Accesibil (clasa a 6-a)

Notă: problema este punctată uşor diferit faţă de original din cauza restricţiilor impuse de evaluatorul infoarena.

Un număr natural de cel puţin două cifre se numeşte accesibil dacă este format din cifre consecutive în ordine strict crescătoare. (23 şi 6789 sunt numere accesibile, în timp ce 7, 2334 şi 654 nu sunt numere accesibile)

Cerinţe

Scrieţi un program care să citească numerele k, n şi un şir de n numere naturale şi să afişeze:

a) cele mai mari 3 numere accesibile, nu neapărat distincte, din şirul de n numere;
b) câte dintre numerele din şirul dat care nu sunt accesibile, devin accesibile prin eliminarea exact a unei cifre;
c) cel mai mic şi cel mai mare număr accesibil format din k cifre;
d) numărul numerelor accesibile pare de k cifre şi numărul numerelor accesibile impare de k cifre.

Date de intrare

Fişierul de intrare accesibil.in conţine pe prima linie un număr natural p. Pentru toate testele de intrare, numărul p este un număr din mulţimea {1,2,3,4}. Pe linia a doua a fişierului de intrare se găsesc k şi n, iar pe a treia linie a fişierului de află n numere naturale separate prin câte un spaţiu.

Date de ieşire

  • Dacă valoarea lui p este 1, se va rezolva numai punctul a) din cerinţe. În acest caz, în fişierul de ieşire accesibil.out se vor scrie, în ordine crescătoare, separate prin câte un spaţiu, cele mai mari trei numere accesibile dintre cele n numere aflate pe a treia linie a fişierului. Se garantează că pentru p = 1 sunt cel puţin trei numere accesibile în şirul de n numere.
  • Dacă valoarea lui p este 2, se va rezolva numai punctul b) din cerinţe. În acest caz, în fişierul de ieşire se va scrie numărul numerelor din şirul dat care nu sunt accesibile, dar care ar deveni accesibile dacă li s-ar elimina o cifră.
  • Dacă valoarea lui p este 3, se va rezolva numai punctul c) din cerinţe. În acest caz, în fişierul de ieşire se vor scrie două valori, separate printr-un spaţiu, reprezentând cel mai mic număr accesibil de k cifre şi cel mai mare număr accesibil de k cifre. Dacă cele două numere ce ar trebui afişate coincid se va afişa valoarea lor comună o singură dată.
  • Dacă valoarea lui p este 4, se va rezolva numai punctul d) din cerinţe. În acest caz, în fişierul de ieşire se vor scrie două valori reprezentând numărul numerelor accesibile pare de k cifre şi numărul numerelor accesibile impare de k cifre, în această ordine, separate prin spaţiu.

Restricţii

  • 2 ≤ k ≤ 9 şi 3 ≤ n ≤ 100 000;
  • 0 ≤ numerele din şir ≤ 2 000 000 000;
  • Din numărul 5073, de exemplu, prin eliminarea unei cifre se obţin numerele 507, 503, 573 şi 73;
  • Pentru a rezolva cerinţele a) şi b) nu folosim valoarea lui k, iar pentru cerinţele c) şi d) nu folosim şirul de n numere;
  • Se acordă: 40 de puncte pentru cerinţa a); 30 de puncte pentru cerinţa b); 10 20 puncte pentru cerinţa c); 10 puncte pentru cerinţa d);
  • Se acordă 10 puncte din oficiu.

Exemple

accesibil.inaccesibil.outExplicaţii
1
3 8
6 12 235 5678 90 987 234 5678
234 5678 5678
Numerele accesibile sunt 12, 5678, 234 şi 5678. Cele mai mari 3 valori,
crescător: 234 5678 5678 (p fiind 1 se rezolvă doar cerinţa a)
2
3 9
4 34 123 1238 301 689 4560 7023 1238
5
Dacă eliminăm o cifră din 1238, 689, 4560,7023, 1238 se obţin numere
accesibile (p fiind 2 se rezolvă doar cerinţa b)
3
4 3
12 345 67
1234 6789
Cel mai mic număr accesibil de 4 cifre este 1234 şi cel mai mare este
6789 (p fiind 3 se rezolvă doar cerinţa c)
4
9 3
12 345 67
0 1
Există un singur număr accesibil de 9 cifre impar, respectiv 123456789
şi niciun număr par de 9 cifre (p fiind 4 se rezolvă doar cerinţa d)
Trebuie sa te autentifici pentru a trimite solutii. Click aici