Cod sursa(job #584704)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 26 aprilie 2011 14:05:18
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

int a[5000001],n,i,deque[5000001],start,final,k;
long long s;

int main () {
    f >> n >> k;
    for (i=1;i<=n;i++)
         f >> a[i];
    start=1;final=0;
    for (i=1;i<=n;i++) {
        while (start<=final && a[i]<=a[deque[final]]) final--;
        final++;deque[final]=i;
        if (deque[start]==i-k) start++;
        if (i>=k) s+=a[deque[start]];
    }
    g << s << '\n';
    f.close();g.close();
    return 0;
}