Cod sursa(job #858582)

Utilizator deea101Andreea deea101 Data 19 ianuarie 2013 00:41:45
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#include <list>
#include <cstdio>
using namespace std;

list <int> v;
int a[5000002];
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",&a[i]);
    for(i=1;i<=n;i++)
    {
        while( !v.empty() && a[i]<=a[v.back()]) v.pop_back();
        v.push_back(i);
        if(v.front()==i-k) v.pop_front();
        if(i>=k) s+=a[v.front()];
    }
	printf("%lld",s);
     
}