Pagini recente » Cod sursa (job #2795561) | Cod sursa (job #3273405) | Cod sursa (job #84702) | Cod sursa (job #1038731) | Cod sursa (job #467347)
Cod sursa(job #467347)
#include <iostream>
#include <fstream>
#define MOD 9901
using namespace std;
const char iname[] = "pod.in";
const char oname[] = "pod.out";
const int nmax = 1000005;
ifstream fin(iname);
ofstream fout(oname);
int N, K, M, j, F[nmax], Sc[nmax + 6], i, x;
int test(int K)
{
for(i = 1; i <= K; i ++)
if(Sc[i] == 1)
return 0;
return 1;
}
int main()
{
fin >> N >> M >> K;
for(i = 1; i <= M; i ++)
{
fin >> x;
Sc[x] = 1;
}
if(!Sc[1])
{
F[1] = 1;
if(Sc[K] == 0 && test(K))
F[K] = 2;
else
if(Sc[K]==0)
F[K]=1;
for(i = 2; i <= N; i ++)
if(Sc[i] == 0 && i != K)
F[i] = (F[i] + F[i - 1] + F[i - K]) % MOD;
}
else
{
F[K] = 1;
for(i = K + 1; i <= N; i ++)
if(Sc[i] == 0 && i - K > 0)
F[i] = (F[i] + F[i - 1] + F[i - K]) % MOD;
}
fout << F[N] % MOD;
//fout << "0";
return 0;
}