Cod sursa(job #466989)

Utilizator bog29Antohi Bogdan bog29 Data 28 iunie 2010 10:35:17
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<algorithm>
#include<vector>
#include<map>
using namespace std;
ifstream in("pod.in");
ofstream out("pod.out");

int k,m,crt;
long long n,a;
vector<long long>x;
//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;
		x.push_back(a);
	}	
	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(!binary_search(x.begin(),x.end(),i))
		{	
			if(!binary_search(x.begin(),x.end(),i+1))
			{	dq[1]+=dq[0];
				while(dq[1] > 9901)
					dq[1]-=9901;
			}
			
			if(!binary_search(x.begin(),x.end(),i+k))
			{	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<<bs(1);
	out.close();
	return 0;
}