Mai intai trebuie sa te autentifici.
Cod sursa(job #467068)
Utilizator | Data | 28 iunie 2010 11:18:46 | |
---|---|---|---|
Problema | Pod | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Stelele Informaticii 2010, clasele X-XII, Ziua 2 | Marime | 0.76 kb |
//Fiftin points
#include<stdio.h>
#include<stdlib.h>
const int N=10000001,MOD=9901;
int n,m,k;
short int d[N];
void SolveA(){
d[0]=1;
for( int i=0; i<n; ++i)
if(d[i]>0){
if( d[i+1]!=-1 )
d[i+1]=(d[i]+d[i+1])%MOD;
if( d[i+k]!=-1 && k!=1 )
d[i+k]=(d[i]+d[i+k])%MOD;
}
printf("%d\n",d[n]);
}
void Read(){
int x;
scanf("%d%d%d",&n,&m,&k);
for( int i=1; i<=m; ++i){
scanf("%d",&x);
d[x]=-1;
if(x==n)
{
printf("0\n");
exit(0);
}
}
if(n<N)
SolveA();
}
int main()
{
freopen("pod.in","r",stdin);
freopen("pod.out","w",stdout);
Read();
return 0;
}