Pagini recente » Cod sursa (job #2383089) | Cod sursa (job #2149233) | Cod sursa (job #2895945) | Arhiva de probleme | Cod sursa (job #467056)
Cod sursa(job #467056)
#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 bs(long long k)
{ int l,r,md;
l=0;
r=m-1;
while(l<=r)
{ md=(l+r)/2;
//out<<l<<" "<<r<<" "<<md<<'\n';
if(x[md]==k)
return 1;
else if(k < x[md])
r=md-1;
else if(k > x[md])
l=md+1;
}
return 0;
}
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);
sort(x,x+m);
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(!bs(i))
{
if(!bs(i+1))
{ dq[1]+=dq[0];
while(dq[1] > 9901)
dq[1]-=9901;
}
if(!bs(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;
}