Cod sursa(job #1710290)

Utilizator MithrilBratu Andrei Mithril Data 28 mai 2016 19:09:25
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
#define N 5000001
using namespace std;
ifstream fin("deque.in");ofstream fout("deque.out");
long long suma=0;deque <int> D;int a[N],n,k;
int main()
{
    fin>>n>>k;for(int i=1;i<=n;++i){fin>>a[i];}
    int first=1,last=k;D.push_back(a[first]);
    for(int i=first+1;i<=last;++i){
        while(a[i]<D.back())
            {D.pop_back();}
        D.push_back(a[i]);}
    suma+=D.front();
    while(last<n)
    {
        first++;last++;
        if(D.front()==a[first-1])
            D.pop_front();
        while(a[last]<D.back())
            D.pop_back();
        D.push_back(a[last]);
        suma+=D.front();
    }
    fout<<suma;
    return 0;
}