accesibil

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

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. (2323 și 67896789 sunt numere accesibile, în timp ce 77, 23342334 și 654654 nu sunt numere accesibile)

Cerință

Scrieți un program care să citească numerele k,nk, n și un șir de nn numere naturale și să afișeze:

  1. cele mai mari 33 numere accesibile, nu neapărat distincte, din șirul de nn numere;
  2. câte dintre numerele din șirul dat care nu sunt accesibile, devin accesibile prin eliminarea exact a unei cifre;
  3. cel mai mic și cel mai mare număr accesibil format din kk cifre;
  4. numărul numerelor accesibile pare de kk cifre și numărul numerelor accesibile impare de kk cifre.

Date de intrare

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

Date de ieșire

  • Dacă valoarea lui pp este 11, se va rezolva numai punctul 11 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 nn numere aflate pe a treia linie a fișierului. Se garantează că pentru p=1p = 1 sunt cel puțin trei numere accesibile în șirul de nn numere.
  • Dacă valoarea lui pp este 22, se va rezolva numai punctul 22 din cerințe. În acest caz, în fișierul de ieșire accesibil.out 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 pp este 33, se va rezolva numai punctul 33 din cerințe. În acest caz, în fișierul de ieșire accesibil.out se vor scrie două valori, separate printr-un spațiu, reprezentând cel mai mic număr accesibil de kk cifre și cel mai mare număr accesibil de kk cifre. Dacă cele două numere ce ar trebui afișate coincid se va afișa valoarea lor comună o singură dată.
  • Dacă valoarea lui pp este 44, se va rezolva numai punctul 44 din cerințe. În acest caz, în fișierul de ieșire accesibil.out se vor scrie două valori reprezentând numărul numerelor accesibile pare de kk cifre și numărul numerelor accesibile impare de kk cifre, în această ordine, separate prin spațiu.

Restricții și precizări

  • 2k92 \leq k \leq 9 și 3n100 0003 \leq n \leq 100 \ 000;
  • 00 \leq numerele din șir 2 000 000 000\leq 2 \ 000 \ 000 \ 000;
  • Din numărul 50735073, de exemplu, prin eliminarea unei cifre se obțin numerele 507,503,573507, 503, 573 și 7373;
  • Pentru a rezolva cerințele 11 și 22 nu folosim valoarea lui kk, iar pentru cerințele 33 și 44 nu folosim șirul de n numere;
  • Se acordă: 4040 de puncte pentru cerința 11; 3030 de puncte pentru cerința 22; 10 puncte pentru cerința 33; 10 puncte pentru cerința 44;

Exemplul 1

accesibil.in

1
3 8
6 12 235 5678 90 987 234 5678

accesibil.out

234 5678 5678

Explicație

Numerele accesibile sunt 12,5678,23412, 5678, 234 și 56785678. Cele mai mari 33 valori, crescător: 234 5678 5678234 \ 5678 \ 5678 (pp fiind 11 se rezolvă doar cerința 11)

Exemplul 2

accesibil.in

2
3 9
4 34 123 1238 301 689 4560 7023 1238

accesibil.out

5

Explicație

Dacă eliminăm o cifră din 1238,689,4560,7023,12381238, 689, 4560,7023, 1238 se obțin numere accesibile (pp fiind 22 se rezolvă doar cerința 22)

Exemplul 3

accesibil.in

3
4 3
12 345 67

accesibil.out

1234 6789

Explicație

Cel mai mic număr accesibil de 44 cifre este 12341234 și cel mai mare este 67896789 (pp fiind 33 se rezolvă doar cerința 33)

Exemplul 4

accesibil.in

4
9 3
12 345 67

accesibil.out

0 1

Explicație

Există un singur număr accesibil de 99 cifre impar, respectiv 123456789123456789 și niciun număr par de 99 cifre (pp fiind 44 se rezolvă doar cerința 44)

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