Zid

Time limit: 0.5s Memory limit: 512MB Input: zid.in Output: zid.out

Fascinată de cultura chineză și Marele Zid Chinezesc, Andra s-a hotărât să își construiască propriul zid în miniatură, de înălțime NN și lățime MM , din piese roșii și galbene pe care le deține.

Ea are la dispoziție un număr nelimitat de piese cu lățimea de o unitate și toate înălțimile posibile. Piesele roșii (hóng) au înălțimea impară (1,3,5,)(1, 3, 5, \dots), pe când piesele galbene (huáng) au înălțimea pară (2,4,6,)(2, 4, 6, \dots). Piesele nu pot fi rotite și pot fi plasate doar pe verticală.

Deoarece culoarea galbenă este considerată cea mai prestigioasă în cultura chineză, Andra vrea ca suma lungimilor tuturor pieselor galbene ce alcătuiesc zidul să fie egală cu un număr KK, special ales astfel încât să aducă noroc. Mai mult de atât, ea se întreabă în câte moduri poate construi zidul astfel încât această condiție să fie respectată. Întrucât această cerință “pare chineză” pentru ea (chiar dacă este vorbitoare de limba chineză!), a decis să vă ceară ajutorul, auzind că vă simțiți norocoși în anul dragonului.

Întrucât această cerință “pare chineză” pentru ea (chiar dacă este vorbitoare de limba chineză!), a decis să vă ceară ajutorul, auzind că vă simțiți norocoși în anul dragonului.

Cerință

Date fiind N,MN, M și KK, determinați numărul de moduri de a construi zidul în condițiile date.

Date de intrare

Singura linie a fișierului de intrare zid.out conține valorile NN, MM și KK, cu semnificația din enunț.

Date de ieșire

Singura linie a fișierului de ieșire zid.out va conține numărul de moduri de a construi zidul modulo 109+710^9 + 7.

Restricții și precizări

  • 1N,M5 0001 \leq N, M \leq 5 \ 000
  • 0KN0 \leq K \leq N
  • Două modalități de a construi zidul se consideră identice dacă sunt formate din aceleași tipuri de piese plasate în același mod. De exemplu, există două moduri de a construi un zid de 4×14 × 1 complet galben.
# Punctaj Restricții
1 10 N6N \leq 6, M=1M = 1
2 16 N500N \leq 500, M=1M = 1
3 5 N2 500N \leq 2 \ 500, M=1M = 1, K=NK = N
4 6 N2 500N \leq 2 \ 500, M=1M = 1, K=0K = 0
5 14 N2 500N \leq 2 \ 500, M=1M = 1
6 4 N500N ≤ 500, M=2M = 2
7 2 N500N ≤ 500, M=3M = 3
8 5 N2 500N ≤ 2 \ 500, M=4M = 4
9 17 N2 500N ≤ 2 \ 500, M10M \leq 10
10 14 N2 500N ≤ 2 \ 500, M2 500M \leq 2 \ 500
11 7 Fără restricții suplimentare

Exemplul 1

zid.in

5 1 2

zid.out

6

Explicație

Toate cele 66 configurații de ziduri cu înălțimea 55, lățimea 11 și K=2K = 2 posibile sunt ilustrate în prima figură.

Exemplul 2

zid.in

2 2 2

zid.out

2

Explicație

Toate cele 22 configurații sunt ilustrate în cea de a doua figură.

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