Cod sursa(job #1837947)

Utilizator Vlad_lsc2008Lungu Vlad Vlad_lsc2008 Data 30 decembrie 2016 17:45:51
Problema Pod Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

int n,m,k;
int a[24],nxt[1000],ixt;
int pozcrt;

int main()
{
    int i;
    freopen("pod.in","r",stdin);
    freopen("pod.out","w",stdout);
    scanf("%d%d%d",&n,&m,&k);
    for(i=1;i<=m;i++)
        scanf("%d",&nxt[i]);
    sort(nxt+1,nxt+m+1);

    ixt=1;
    a[0]=1;
    pozcrt=1;

    for(;pozcrt<k;pozcrt++)
        if(pozcrt !=nxt[ixt]) a[pozcrt]=a[pozcrt-1];
        else if(ixt<=m)
        {
            ixt++;
            a[pozcrt]=0;
        }
    a[pozcrt]=a[pozcrt-1]+a[pozcrt-k];

    pozcrt++;
    i=1;

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

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

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