Pagini recente » Cod sursa (job #859797) | Cod sursa (job #287090) | Cod sursa (job #930533) | Cod sursa (job #17300) | Cod sursa (job #467196)
Cod sursa(job #467196)
#include<fstream>
#include<deque>
#include<algorithm>
using namespace std;
long first,last,a,b,nr,x,n,m,k,v[1005];
deque<long> d;
deque<long>::iterator it;
int main()
{ifstream fin("pod.in");
fin>>n>>m>>k;
long i;
for(i=1;i<=m;++i)
fin>>v[i];
fin.close();
ofstream fout("pod.out");
sort(v+1,v+m+1);
long p=1;
if(m==0)
{ v[0]=-1;
p=0;
}
if(1==v[p])
{++p;
d.push_back(0);
}
else
d.push_back(1);
for(i=2;i<=k-1;++i)
if(v[p]==i)
{last=d.back();
d.push_back(last);
++p;
}
else
{last=d.back();
d.push_back(last);
}
last=0;
last=d.back();
if(v[p]==k)
{++p;
d.push_back(last);
}
else
d.push_back(last+1);
for(i=k+1;i<=n;++i)
{if(v[p]==i)
{d.push_back(0);
d.pop_front();
++p;
}
else
{last=d.back();
first=d.front();
d.push_back((first+last)%9901);
d.pop_front();
}
}
if(k==1)
{ if(m==0)
fout<<1;
else
fout<<0;
}
else
fout<<d.back()%9901<<'\n';
fout.close();
return 0;
}