Cod sursa(job #1475988)

Utilizator TibiraducanuTiberiu Raducanu Tibiraducanu Data 24 august 2015 14:07:31
Problema Zombie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>

using namespace std;

int v[1000005];
int r[1000005];
int s[1000005];

int min(int a,int b)
{
    if(a<b) return a;
    return b;
}

int main()
{
    freopen("zombie.in","r",stdin);
    freopen("zombie.out","w",stdout);

    int d,n,k,i,j;

    scanf("%d%d%d",&d,&n,&k);

    for(i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);
    }
    v[n+1]=2000000000;

    j=1;
    i=1;
    while(i<=n+1)
    {
        if(v[i]-v[j]<d)
        {
            i++;
        }
        else
        {
            r[j]=i-1;
            j++;
        }
    }

    for(i=n;i>=1;i--)
    {
        s[i]=min(s[i+1]+1,k+s[r[i]+1]);
    }

    printf("%d",s[1]);

    return 0;
}