Cod sursa(job #466972)

Utilizator bog29Antohi Bogdan bog29 Data 28 iunie 2010 10:13:19
Problema Pod Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 1 kb
#include<fstream>
#include<deque>
#include<map>
using namespace std;
ifstream in("pod.in");
ofstream out("pod.out");

int k,m,crt;
long long n,a,x[1004];
map<long long,bool> p;
deque<int>dq;

int main()
{	long long i,j;
	in>>n>>m>>k;
	for(i=0;i<m;i++)
	{	//in>>a;
		//p[a]=1;
		in>>x[i];
	}	
	in.close();
	for(i=0;i<=k;i++)
		dq.push_back(0);
	dq[0]=1;
	crt=0;
	for(i=0;i<n;i++)
	{	/*out<<i<<'\n';
		for(j=0;j<=dq.size();j++)
			out<<dq[j]<<" ";
		out<<'\n';*/
		//if(p[i]==0)
		if(dq[0]!=-1)
		{	//if(p[i+1]==0)
			if(x[crt]==i+1)
			{	dq[1]=-1;
				crt++;
			}	
			if(x[crt]==i+k)
			{	dq[k]=-1;
				crt++;
			}	
			if(dq[1]!=-1)
			{	dq[1]+=dq[0];
				while(dq[1] > 9901)
					dq[1]-=9901;
			}
			//if(p[i+k]==0)
			if(dq[k]!=-1)
			{	dq[k]+=dq[0];
				while(dq[k] > 9901)
					dq[k]-=9901;
			}	
			
		}	
		dq.pop_front();
		dq.push_back(0);
		/*for(j=0;j<=dq.size();j++)
			out<<dq[j]<<" ";
		out<<'\n'<<'\n';*/
	}	
	out<<dq[0];
	out.close();
	return 0;
}