Cod sursa(job #568860)

Utilizator popoiu.georgeGeorge Popoiu popoiu.george Data 31 martie 2011 19:15:23
Problema Pod Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
#define inf "pod.in"
#define outf "pod.out"
#define NMax 1000100
#define MOD 9901
using namespace std;

fstream f(inf,ios::in),g(outf,ios::out);

int N, M, K;
int A[NMax];

void read()
{
	f>>N>>M>>K; int j;
	for(int i=1; i<=M; i++) { f>>j; A[j] = -1; }
}

void solve()
{
	int st;
	for(int i=1; i<=N; i++)
		if( A[i]!=-1 ) { A[i] = 1; st = i+1; break; }
	
	for(int i=st; i<=N; i++)
	{
		if( A[i]==-1 ) continue;
		if( A[i-1]!=-1 ) A[i] += A[i-1];
		if( i-K>=1 && A[i-K]!=-1 ) A[i] += A[i-K];
		A[i] %= MOD;
	}
	g<< A[N];
}

int main()
{
	read(); solve();
	f.close(); g.close();
	return 0;
}