Pagini recente » Cod sursa (job #252777) | Cod sursa (job #3186008) | Cod sursa (job #2519480) | Cod sursa (job #2950670) | Cod sursa (job #1837947)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,m,k;
int a[24],nxt[1000],ixt;
int pozcrt;
int main()
{
int i;
freopen("pod.in","r",stdin);
freopen("pod.out","w",stdout);
scanf("%d%d%d",&n,&m,&k);
for(i=1;i<=m;i++)
scanf("%d",&nxt[i]);
sort(nxt+1,nxt+m+1);
ixt=1;
a[0]=1;
pozcrt=1;
for(;pozcrt<k;pozcrt++)
if(pozcrt !=nxt[ixt]) a[pozcrt]=a[pozcrt-1];
else if(ixt<=m)
{
ixt++;
a[pozcrt]=0;
}
a[pozcrt]=a[pozcrt-1]+a[pozcrt-k];
pozcrt++;
i=1;
for(;pozcrt<=n;pozcrt++,i++)
{
if(pozcrt!=nxt[ixt])
{
if(i==1) a[i]+=a[k];
else a[i]+=a[i-1];
if(a[i]>9901) a[i]-=9901;
}
else
{
a[i]=0;
if(ixt<=m) ixt++;
}
if(i==k) i=0;
}
i--;
if(i==0) i=k;
printf("%d\n",a[i]);
fclose(stdin);
fclose(stdout);
return 0;
}