drumuri

Time limit: 0.2s Memory limit: 128MB Input: drumuri.in Output: drumuri.out

O tablă pătratică este formată din N×NN \times N celule pătrate, identice ca dimensiune, grupate pe NN linii şi NN coloane numerotate de la 11 la NN. Din oricare celulă aflată la linia ii şi coloana jj, se poate face o deplasare doar spre celula vecină (i+1,j)(i + 1, j) sau (i,j+1)(i, j + 1), dacă aceasta există. În interiorul a MM celule ale acestei matrice s-a așezat câte un jeton.

Numim drum pe această tablă, orice succesiune de celule parcurse conform regulii de deplasare descrisă anterior. Lungimea unui asemenea drum este egală cu numărul de celule parcurse.

Cerinţă

Cunoscând dimensiunea tablei NN, numărul total de jetoane mm şi două numere naturale LL şi KK, să se determine un număr dd, reprezentând numărul de drumuri distincte modulo 31 60731 \ 607 de lungime LL care pornesc din celula (1,1)(1, 1) şi care conţin fiecare câte KK jetoane.

Date de intrare

Fişierul de intrare drumuri.in conţine pe prima linie patru numere naturale nn, mm, KK, LL separate prin câte un spaţiu, cu semnificația descrisă anterior.
Pe fiecare dintre următoarele mm linii, se găsesc câte două numere naturale xx, yy separate printr-un spaţiu, reprezentând linia şi coloana pe care se găseşte un jeton.

Date de ieșire

Pe prima linie a fişierului drumuri.out se va scrie un singur număr natural DD reprezentând numărul de drumuri modulo 31 60731 \ 607 care pornesc din celula (1,1)(1, 1), au lungimea LL şi trec prin KK celule care conțin jetoane.

Restricții și precizări

  • 1KN2501 \leq K \leq N \leq 250
  • 1M10 0001 \leq M \leq 10 \ 000
  • 1L<5001 \leq L < 500
  • Două drumuri se consideră distincte dacă diferă prin cel puţin o celulă.
  • Într-o celulă se găsește cel mult un jeton.

Exemplul 1

drumuri.in

3 4 3 4
1 1
1 3
2 2
2 3

drumuri.out

3

Explicație

Sunt 33 drumuri de lungime 44 care conțin 33 jetoane:

  • (1,1),(1,2),(1,3),(2,3)(1, 1), (1, 2), (1, 3), (2, 3);
  • (1,1),(1,2),(2,2),(2,3)(1, 1), (1, 2), (2, 2), (2, 3);
  • (1,1),(2,1),(2,2),(2,3)(1, 1), (2, 1), (2, 2), (2, 3).

Exemplul 2

drumuri.in

4 5 2 4
1 2
2 1
1 3
3 2
4 3

drumuri.out

5

Explicație

Sunt 55 drumuri de lungime 44 care conțin 22 jetoane:

  • (1,1),(1,2),(1,3),(1,4)(1, 1), (1, 2), (1, 3), (1, 4);
  • (1,1),(1,2),(1,3),(2,3)(1, 1), (1, 2), (1, 3), (2, 3);
  • (1,1),(1,2),(2,2),(3,2)(1, 1), (1, 2), (2, 2), (3, 2);
  • (1,1),(2,1),(2,2),(3,2)(1, 1), (2, 1), (2, 2), (3, 2);
  • (1,1),(2,1),(3,1),(3,2)(1, 1), (2, 1), (3, 1), (3, 2).

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