Cod sursa(job #467232)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 28 iunie 2010 13:19:50
Problema Pod Scor 15
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 0.94 kb
#include <cstdio>
#include <algorithm>
using namespace std;
#define X 9901

int v[1010], a[27], n, k, m;

int main()
{
    freopen("pod.in","r",stdin);
    freopen("pod.out","w",stdout);
    scanf("%d %d %d",&n,&m,&k);
    int i, p, c, j, t;
    p=1;
    for (i=1; i<=m; i++) scanf ("%d",&v[i]);
    sort(v+1,v+m+1);
    if (!n)
    {
        printf("1\n");
        return 0;
    }
    if (k==1)
    {
        if (!m) printf("1\n"); else printf("0\n");
        return 0;
    }
    c=1;
    p=1;
    a[0]=1;
    t=0;
    for (i=1; i<=n; i++)
    {
        if (i==v[c]) c++; else
        {
            a[p]=a[p-1];
            if (p>=k)
            {
                a[p]=(a[p]+a[p-k]);
                a[p]=a[p]-a[p]/X*X;
            }
        }
        p++;
        if (p==23)
        {
            t=1;
            for (j=1; j<=22; j++) a[j]=a[j+1];
            p=22;
        }
    }
    printf("%d\n",a[p-1]);

}