Cod sursa(job #1254105)

Utilizator ipus1Stefan Enescu ipus1 Data 2 noiembrie 2014 10:47:37
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<cstdio>
#include<deque>
using namespace std;
struct aa{int x,poz;};
deque<aa> v;
aa aux;
int vec[5000001];
int main ()
{freopen ("deque.in","r",stdin);
freopen ("deque.out","w",stdout);
int n,k,i;
long long s=0;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
    scanf("%d",&vec[i]);
for(i=1;i<=k;i++)
    {while(v.empty()==0&&vec[i]<v.back().x)
        v.pop_back();
    aux.x=vec[i];
    aux.poz=i;
    v.push_back(aux);
    }
s=v.front().x;
for(i=k+1;i<=n;i++)
    {if(v.front().poz+k<=i)
        v.pop_front();
    while(v.empty()==0&&vec[i]<v.back().x)
        v.pop_back();
    aux.x=vec[i];
    aux.poz=i;
    v.push_back(aux);
    s+=v.front().x;
    }
printf("%I64d",s);
return 0;
}