1138 - Speciale
Sursa: [1]
Enunt[edit | edit source]
Maria a aflat că numerele naturale care încep cu cifra 1 și au toate cifrele ordonate strict crescător şi consecutive sau încep cu cifra 9 și au toate cifrele ordonate strict descrescător şi consecutive se numesc numere speciale. Interesată să descopere legătura dintre numerele speciale cu același număr de cifre, a observat că poate construi tabelul alăturat.
Cerinţe[edit | edit source]
Scrieţi un program care citind patru numere naturale K, N, A şi B determină: 1) cel mai mare număr special situat în tabel pe linia K; 2) numărul special obţinut din numărul N prin ştergerea unei cifre; 3) numărul de numere speciale din mulțimea {A , A +1, A+2, A+3…,B-1,B}.
Date de intrare[edit | edit source]
Fișierul de intrare speciale.in conține pe prima linie un număr natural P. Pentru toate testele de intrare, numărul P poate avea doar valoarea 1, valoarea 2 sau valoarea 3. Pe a doua linie a fișierului speciale.in se găsesc, în această ordine, numerele naturale K, N, A și B, separate prin câte un spațiu.
Date de ieșire[edit | edit source]
Dacă valoarea lui P este 1, se va rezolva numai punctul 1) din cerințe. În acest caz, fişierul de ieşire speciale.out va conține pe prima linie un număr natural reprezentând cel mai mare număr special situat în tabel pe linia K.
Dacă valoarea lui P este 2, se va rezolva numai punctul 2) din cerințe. În acest caz, fişierul de ieşire speciale.out va conține pe prima linie un număr natural reprezentând numărul special obţinut din numărul N prin ştergerea unei cifre sau 0 dacă un astfel de număr nu se poate obţine; Dacă valoarea lui P este 3, se va rezolva numai punctul 3) din cerințe. În acest caz, fişierul de ieşire speciale.out va conține pe prima linie un număr natural reprezentând numărul de numere speciale din mulțimea {A , A +1, A+2, A+3…,B-1,B}.
Restricţii şi precizări[edit | edit source]
- 1 ≤ K ≤ 9
- 1 ≤ N ≤ 999999999
- 1 ≤ A ≤ B ≤ 999999999
- Pentru rezolvarea corectă a primei cerinţe se acordă 20 de puncte, pentru rezolvarea corectă a celei de a doua cerințe se acordă 40 de puncte, pentru rezolvarea corectă a celei de a treia cerințe se acordă 40 de puncte.
Exemplul 1[edit | edit source]
- speciale.in
- 1
- 3 125345 320 888888
- speciale.out
- 987
Explicație[edit | edit source]
P = 1, pentru acest test, se rezolva cerința 1). Numerele speciale de pe linia a treia a tabelului sunt 123 și 987, cel mai mare fiind 987.
Exemplul 2[edit | edit source]
- speciale.in
- 2
- 3 125345 320 888888
- speciale.out
- 12345
Explicație[edit | edit source]
P = 2, pentru acest test, se rezolva cerința 2). Ștergând cifra 5 aflată pe poziția a treia în 125345 se obține numărul special 12345.
Exemplul 3[edit | edit source]
- speciale.in
- 3
- 3 125345 320 888888
- speciale.out
- 6
Explicație[edit | edit source]
P = 3, pentru acest test, se rezolvă cerința 3). Sunt 6 numere speciale în mulțimea {320, 321,..., 888888} și anume 987, 1234, 9876, 12345, 98765, 123456
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
</syntaxhighlight>