Cod sursa(job #1314466)

Utilizator heracleRadu Muntean heracle Data 11 ianuarie 2015 21:26:55
Problema Zombie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <cstdio>

FILE* in=fopen("zombie.in","r");
FILE* out=fopen("zombie.out","w");

const int Q=1000009;

int v[Q],dist[Q];

int minim(int a, int b)
{
    return a<b?a:b;
}

int main()
{
    int d,n,k;

    fscanf(in,"%d%d%d",&d,&n,&k);

    int umb=0;

    for(int i=1; i<=n; i++)
    {
        fscanf(in,"%d",&dist[i]);

        if(dist[i]-dist[umb]+1>=d)
        {
            while(dist[i]-dist[umb]+1>=d)
                umb++;
            umb--;
        }

        v[i]=minim(v[i-1]+1,v[umb]+k);
    }

    fprintf(out,"%d",v[n]);

    return 0;
}