Șir

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

Corneluș a învățat să numere. El pornește întotdeauna de la 11, numără din 11 în 11, nu greșește niciodată numărul următor, însă ezită uneori și atunci spune numărul curent de mai multe ori. Sora lui, Corina, îl urmărește și face tot felul de calcule asupra modurilor în care numără fratele ei. Astfel, ea urmărește până la cât numără (U)(U), câte numere spune în total (N)(N) și, pentru a aprecia cât de ezitant este, numărul maxim de repetări (R)(R) ale unei valori. De exemplu, el poate număra până la 88 astfel: 1 2 3 3 4 5 6 7 7 7 7 8 81 \ 2 \ 3 \ 3 \ 4 \ 5 \ 6 \ 7 \ 7 \ 7 \ 7 \ 8 \ 8. În acest caz, numără până la 8 (U=8)8 \ (U=8), spune 1313 numere (N=13)(N=13) și ezită cel mai mult la 77, spunându-l de 44 ori (R=4)(R=4).

Cerințe

  1. Cunoscând numărul total de numere NN și ultimul număr spus UU, trebuie să calculați câte șiruri diferite au exact NN numere și se termină cu numărul UU.
  2. Cunoscând numărul total de numere NN și numărul maxim de repetări RR ale unei valori, trebuie să calculați câte șiruri diferite au exact NN numere și fiecare valoare se repetă de cel mult RR ori.

Deoarece numărul de șiruri poate fi foarte mare, calculați restul împărțirii acestui număr la 20 173 33320 \ 173 \ 333.

Date de intrare

Din fișierul sir.in se citesc trei numere naturale, P,NP, N și XX, scrise în această ordine, cu câte un spațiu între ele. PP poate avea una dintre valorile 11 sau 22, iar NN este numărul de numere din șir. Când PP are valoarea 11, numărul XX reprezintă ultimul număr spus (U)(U), iar când PP are valoarea 22, XX reprezintă numărul maxim de repetări ale unei valori (R)(R).

Date de ieșire

În fișierul sir.out se scrie o singură valoare, astfel:

  • dacă PP a avut valoarea 11, valoarea reprezintă numărul de șiruri distincte care au exact NN numere și se termină cu numărul XX
  • dacă PP a avut valoarea 22, valoarea reprezintă numărul de șiruri distincte care au exact NN numere și fiecare număr se repetă de cel mult XX ori.

În ambele cazuri, deoarece numărul rezultat poate fi foarte mare, se va scrie restul împărțirii acestui număr la 20 173 33320 \ 173 \ 333.

Restricții și precizări

  • 1N100 0001 \leq N \leq 100 \ 000
  • XN X \leq N
  • Ultima valoare spusă poate să apară de mai multe ori;
  • Testele cu P=1P=1 vor totaliza 50%50\% din punctaj, restul de 50%50\% din punctaj fiind pentru P=2P=2;
  • Pentru teste cumulând 50 de puncte valoarea lui NN nu depășește 1 0001\ 000.

Exemplul 1

sir.in

1 5 3

sir.out

6

Explicație

Se rezolvă cerința 11. Pentru N=5N=5, X=3X=3, sunt 66 șiruri care au exact NN numere și se termină cu 33: [1 1 1 2 3][1 \ 1 \ 1 \ 2 \ 3], [1 1 2 2 3][1 \ 1 \ 2 \ 2 \ 3], [1 1 2 3 3][1 \ 1 \ 2 \ 3 \ 3], [1 2 2 2 3][1 \ 2 \ 2 \ 2 \ 3], [1 2 2 3 3][1 \ 2 \ 2 \ 3 \ 3] și [1 2 3 3 3][1 \ 2 \ 3 \ 3 \ 3].

Exemplul 2

sir.in

2 5 2

sir.out

8

Explicație

Se rezolvă cerința 22. Pentru N=5N=5, X=2X=2, sunt 88 șiruri care au exact NN numere și fiecare număr se repetă de cel mult 22 ori [1 1 2 2 3][1 \ 1 \ 2 \ 2 \ 3], [1 1 2 3 3][1 \ 1 \ 2 \ 3 \ 3], [1 1 2 3 4][1 \ 1 \ 2 \ 3 \ 4], [1 2 2 3 3][1 \ 2 \ 2 \ 3 \ 3], [1 2 2 3 4][1 \ 2 \ 2 \ 3 \ 4], [1 2 3 3 4][1 \ 2 \ 3 \ 3 \ 4], [1 2 3 4 4][1 \ 2 \ 3 \ 4 \ 4], [1 2 3 4 5][1 \ 2 \ 3 \ 4 \ 5].

Exemplul 3

sir.in

2 10 3

sir.out

274

Explicație

Se rezolvă cerința 22. Pentru N=10N=10, X=3X=3, sunt 274274 de șiruri care au exact 1010 numere și fiecare număr se repetă de cel mult 33 ori.

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