Pe vremea Dacilor Liberi se spunea că un șir $A$ este $K$-liber dacă diferența absolută a oricare două elemente consecutive din șir nu este divizibilă cu $K$.
Conducătorul Dacilor Liberi, Decebal, vă dă un șir $A$ de $N$ numere întregi și un număr natural $K$. Pentru ca Dacii Liberi să câștige lupta împotriva armatei conduse de Traian, tu trebuie să calculezi numărul de moduri în care putem rearanja elementele șirului $A$ astfel încât șirul rezultat să fie $K$-liber. Dacă veți reuși să găsiți răspunsul corect, lupta va fi ca și câștigată. Cum acest număr poate să fie foarte mare, se cere restul său la impărțirea cu $10^9 + 7$.
Pe prima linie se află numerele $N$ și $K$ cu semnificația din cerință. A doua linie conține $N$ numere, reprezentând elementele șirului $A$.
Pe prima linie din fișierul de ieșire se va afișa restul la $10^9 + 7$ al numărului pe care Decebal vă roagă să îl calculați.
Intrare
5 5 1 1 6 2 3
Ieșire
6
Intrare
5 6 1 2 3 4 5
Ieșire
120
Pentru primul exemplu: Șirurile $K$-libere sunt:
1 2 1 3 6
1 2 6 3 1
1 3 1 2 6
1 3 6 2 1
6 2 1 3 1
6 3 1 2 1
Pentru al doilea exemplu: Trăiască Dacia Liberă!!!
| Autor: | Liviu Silion |
| Publicat de: | vlad |
Tags:
Programare dinamică