Cod sursa(job #694587)

Utilizator pongraczlajosLajos Pongracz pongraczlajos Data 27 februarie 2012 22:00:03
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;

int a[5000010], deque[5000010];

int main()
{
    int n,k,front,back,i;
    long long sum;

    ifstream f("deque.in");
    f>>n>>k;
    for (i=1;i<=n;i++)
    {
        f>>a[i];
    }
    f.close();

    sum=0;
    front=1; back=0;
    for (i=1;i<=n;i++)
    {
        while (front<=back && a[i]<=a[deque[back]]) {back--;}
        back++;
        deque[back]=i;
        if (deque[front]==i-k) {front++;}
        if (i>=k) {sum=sum+a[deque[front]];}
    }

    ofstream g("deque.out");
    g<<sum<<'\n';
    g.close();
    return 0;
}