Cod sursa(job #467014)

Utilizator mottyMatei-Dan Epure motty Data 28 iunie 2010 10:56:32
Problema Pod Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 0.75 kb
//Fiftin points
#include<stdio.h>
#include<stdlib.h>
const int N=1000001,MOD=9901;

int n,m,k,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;
}