Pagini recente » Cod sursa (job #2585921) | Cod sursa (job #2436294) | Cod sursa (job #2340458) | Cod sursa (job #985860) | Cod sursa (job #467211)
Cod sursa(job #467211)
#include<cstdio>
#include<deque>
#include<algorithm>
using namespace std;
long first,last,a,b,nr,x,n,m,k,v[1005];
deque<int> d;
deque<int>::iterator it;
int main()
{freopen("pod.in","r",stdin);
scantf("%ld%ld%ld",&n,&m,&k);
long i;
for(i=1;i<=m;++i)
scanf("%ld",&v[i]);
freopen("pod.out","w",stdout);
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)
printf("1\n");
else
printf("0\n");
}
else
printf("%ld\n",d.back());
fclose(stdin);
fclose(stdout);
return 0;
}