Pagini recente » Cod sursa (job #1063099) | Cod sursa (job #62104) | Cod sursa (job #1792538) | Cod sursa (job #767105) | Cod sursa (job #467277)
Cod sursa(job #467277)
#include<stdio.h>
#define ll long long
ll n,m,k,a[1001],k1,nr,st[1000],x,i;
int valid(int k)
{
int i,t=1;
if(st[k]>n||a[st[k]]!=0) t=0;
if(st[1]!=1&&st[1]!=k1) t=0;
for(i=1;i<=k&&t;i++)
if(st[i]-st[i-1]!=1&&st[i]-st[i-1]!=k1)
t=0;
return t;
}
void back(int k)
{
st[k]=st[k-1];
while(st[k]<=n)
{
st[k]++;
if(valid(k))
{
if(st[k]==n)
{
nr++;
}
else
back(k+1);
}
}
}
int main()
{
freopen("pod.in","r",stdin);
freopen("pod.out","w",stdout);
scanf("%lld%lld%lld\n",&n,&m,&k1);
for(i=1;i<=m;i++)
{
scanf("%lld",&x);
a[x]=1;
}
st[0]=st[1]=0;
back(1);
printf("%lld\n",nr%9901);
return 0;
}