cd

Time limit: 0.02s Memory limit: 2MB Input: cd.in Output: cd.out

Ionică a strâns foarte multe CD-uri cu jocuri, muzică, filme, etc. pe care le are aşezate în nn cutii, codificate prin 1,2,,n1, 2, \dots, n. Pe la Ionică vine în vizită vărul lui, Florin, care tocmai câştigase un concurs de matematică. Ca să-i mai taie din elan, Ionică îi propune lui Florin să pună o parte din CD-uri într-o ladă mai mare, astfel încât să se ia din fiecare cutie cel puţin câte un CD şi la sfârşit să rămână în fiecare cutie cel puţin un CD.
Pentru a complica problema, Ionică nu îi spune lui Florin câte CD-uri sunt în fiecare cutie, ci îi spune că are în total SS CD-uri şi că, dacă ia din fiecare cutie un număr de CD-uri şi le pune în altă cutie va obţine în final acelaşi număr de CD-uri în toate cutiile.

Cerinţă

Să se scrie un program care cunoscând nn, SS şi numărul de CD-uri mutate din fiecare cutie, determină numărul kk de modalităţi distincte de introducere a CD-urilor în ladă, respectând regula din enunţ.

Date de intrare

Fişierul de intrare cd.in conţine pe prima linie numerele naturale nn şi SS separate printr-un spaţiu, iar pe următoarele nn linii perechile de numere naturale yi ciy_i \ c_i separate printr-un spaţiu, corespunzătoare numărului de CD-uri yi, care se pun din cutia ii în cutia ci,i=1,2,,nc_i, i = 1, 2, \dots, n.

Date de ieşire

Fişierul de ieşire cd.out conţine pe prima linie numărul kk modulo 9 9019 \ 901.

Restricţii şi precizări

  • 2n3002 \leq n \leq 300
  • În fiecare cutie sunt cel mult 1 0001 \ 000 CD-uri.
  • kk modulo pp reprezintă restul împărţirii lui kk la pp
  • SS modulo n=0n = 0
  • O modalitate de alegere a CD-urilor ce vor fi puse în ladă diferă de o altă modalitate, dacă din cel puţin o cutie se alege un număr diferit de CD-uri.

Exemplu

cd.in

3 12
3 2
2 3
1 1

cd.out

20

Explicaţie

Se obţine faptul că în prima cutie sunt 66 CD-uri, în a doua 33 CD-uri, iar în a treia 33 CD-uri.

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