Cod sursa(job #1837933)

Utilizator Vlad_lsc2008Lungu Vlad Vlad_lsc2008 Data 30 decembrie 2016 17:26:09
Problema Pod Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <cstdio>
using namespace std;

int n,m,k;
int a[21];
int pozcrt,nxt;

int main()
{
    int i;
    freopen("pod.in","r",stdin);
    freopen("pod.out","w",stdout);
    scanf("%d%d%d",&n,&m,&k);

    a[0]=1;
    pozcrt=1;
    if(m) { scanf("%d",&nxt); m--; }
    for(;pozcrt<k;pozcrt++)
        if(pozcrt !=nxt) a[pozcrt]=a[pozcrt-1];
        else if(m)
        {
            m--;
            scanf("%d",&nxt);
            a[pozcrt]=0;
        }
    a[pozcrt]=a[pozcrt-1]+a[pozcrt-k];

    pozcrt++;
    i=1;

    for(;pozcrt<=n;pozcrt++,i++)
    {
        if(pozcrt!=nxt)
        {
                if(i==1) a[i]+=a[k];
                else a[i]+=a[i-1];
                if(a[i]>9901) a[i]-=9901;
        }
        else if(m)
        {
            m--;
            scanf("%d",&nxt);
            a[i]=0;
        }

        if(i==k) i=0;
    }

    i--;
    if(i==0) i=k;
    printf("%d\n",a[i]);
    fclose(stdin);
    fclose(stdout);
    return 0;
}