Cod sursa(job #1300764)

Utilizator ade_tomiEnache Adelina ade_tomi Data 24 decembrie 2014 22:35:23
Problema Zombie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<stdio.h>
#include<queue>
using namespace std;
deque<int> q;
int sol,d,k,x,elem,i,n;
int main()
{
    freopen("zombie.in","r",stdin);
    freopen("zombie.out","w",stdout);
    scanf("%d%d%d",&n,&d,&k);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x);
        if(q.empty()==false)
            elem=q.front();
        else elem=-1;
        if(elem==-1)
            q.push_back(x);
        else
        {
            if(x-elem<=d)
                q.push_back(x);
             else
             {
                 if(q.size()>=k)
                 {
                     sol++;
                     q.clear();
                     q.push_back(x);
                 }
                 else
                 {
                     while(q.empty()==false&&x-q.front()<=d)
                     {
                         sol++;
                         q.pop_front();
                     }
                     q.push_back(x);
                 }

             }
        }
    }
    if(q.size()>=k)
        sol+=k;
    else
        sol+=q.size();
    printf("%d",sol);
    return 0;
}