Cod sursa(job #638718)

Utilizator cdascaluDascalu Cristian cdascalu Data 21 noiembrie 2011 15:04:00
Problema Zombie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<stdio.h>
#define Nmax 1000003
#define INF 0x3f3f3f3f
int n,d,k,c=0;
int q[Nmax];
int main()
{
    FILE*f = fopen("zombie.in","r");
    fscanf(f,"%d%d%d",&d,&n,&k);
    int i,x,ind=0,st=1;
    q[1] = INF;
     for(i=1;i<=n;++i)
    {
        fscanf(f,"%d",&x);
        if(x-q[st]<=d-1)
            q[++ind] = x;
        else
        {
            if(ind-st+1>k)//daca sunt mai multi decat k pe d casute
            {
                c+=k;
                st = ind;
            }
            else
            {
                while(x-q[st]>=d-1 && st<=ind)
                {
                    ++c;
                    ++st;
                }
                q[++ind] = x;
            }
        }
    }
    if(ind-st+1>k)
        c+=k;
    else c+=(ind-st+1);
    fclose(f);
    FILE*g = fopen("zombie.out","w");
    fprintf(g,"%d\n",c);
    fclose(g);
    return 0;
}