Turcane

Time limit: 0.2s Memory limit: 256MB Input: turcane.in Output: turcane.out

Pe un câmp asemănător cu o tablă de șah cu MM linii și NN coloane, o țurcană se află în pătrățelul de coordonate (1,1)(1, 1) aflat în colțul din stânga-sus al tablei și vrea să ajungă în pătrățelul de coordonate (M,N)(M, N) aflat în colțul din dreapta-jos al tablei. Ea poate efectua sărituri de lungime cel mult PP la dreapta, de lungime cel mult QQ în jos, de lungime cel mult RR pe diagonală spre dreapta-jos, precum și săritura calului, adică două pătrățele la dreapta și unul în jos sau două în jos și unul la dreapta. Orice săritură trebuie să schimbe poziția țurcanei.

Se dă un număr întreg CC.

  • Dacă C=1C = 1, să se determine numărul minim de sărituri necesare pentru a ajunge în pătrățelul de coordonate (M,N)(M, N).
  • Dacă C=2C = 2, să se determine numărul de moduri în care poate să ajungă în pătrățelul de coordonate (M,N)(M, N), nu neapărat cu număr minim de sărituri.

Se garantează că pentru datele de intrare există cel puțin un mod de a ajunge în pătrățelul (M,N)(M, N).

Date de intrare

Pe prima linie a fișierului de intrare se află numărul CC, pe a doua linie numerele întregi MM și NN, iar pe a treia linie numerele întregi PP, QQ și RR.

Date de ieșire

În fișierul de ieșire se va afișa, corespunzător valorii lui CC, numărul cerut. Rezultatul se va afișa modulo 1 000 000 0071\ 000\ 000\ 007.

Restricții și precizări

  • 1M,N1 0001 \leq M, N \leq 1\ 000
  • 0PN10 \leq P \leq N-1
  • 0QM10 \leq Q \leq M-1
  • 0Rmin(M1,N1)0 \leq R \leq min(M-1, N-1)
  • Dacă P=0P = 0 nu poate sări la dreapta, dacă Q=0Q = 0 nu poate sări în jos, iar dacă R=0R = 0 nu poate sări pe diagonală.
  • Pentru 26 de puncte, C=1C = 1, M=1M = 1.
  • Pentru 15 puncte, C=1C = 1, M=2M = 2.
  • Pentru 7 puncte, C=1C = 1, M=3M = 3.
  • Pentru 7 puncte, C=1C = 1, 1M,N2001 \leq M, N \leq 200.
  • Pentru 8 puncte, C=1C = 1, 1M,N1 0001 \leq M, N \leq 1\ 000.
  • Pentru 11 puncte, C=2C = 2, 1M,N51 \leq M, N \leq 5.
  • Pentru 12 puncte, C=2C = 2, 1M,N2001 \leq M, N \leq 200.
  • Pentru 14 puncte, C=2C = 2, 1M,N1 0001 \leq M, N \leq 1\ 000.

Exemple

turcane.in

1
4 3
2 3 1

turcane.out

2

turcane.in

2
2 3
2 1 1

turcane.out

8

Explicații

Notăm cu OiO_i săritura la dreapta cu ii pătrățele, cu ViV_i săritura în jos cu ii pătrățele, cu DiD_i săritura pe diagonală cu ii pătrățele, cu CdCd săritura calului spre dreapta-jos și cu CjCj săritura calului spre jos-dreapta.

Pentru primul exemplu, numărul minim de sărituri este 22, și avem șase soluții: V3O2V_3 − O_2 sau CdV2Cd − V_2 sau CjD1Cj − D_1 sau O2V3O_2 − V_3 sau V2CdV_2 − Cd sau D1CjD_1 − Cj.

Pentru al doilea exemplu, numărul soluțiilor distincte este 88: O1O1V1O_1 − O_1 − V_1 sau O1V1O1O_1 − V_1 − O_1 sau O1D1O_1 − D_1 sau O2V1O_2 − V_1 sau D1O1D_1 − O_1 sau V1O1O1V_1 − O_1 − O_1 sau V1O2V_1 − O_2 sau CdCd.

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