Cod sursa(job #1310560)

Utilizator SorinmocanuFMI Sorin Mocanu Sorinmocanu Data 6 ianuarie 2015 23:00:11
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<iostream>
#include<fstream>
using namespace std;

#define nmax 5000010
int a[nmax],d[nmax],n,k,ls,ld;
long long s;

int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    int i;
    f>>n>>k;
    for(i=1;i<=n;i++)
        f>>a[i];

    ls=1; ld=0;

    for(i=1;i<=n;i++)
    {
        while(ls<=ld&&a[i]<=a[d[ld]])
            ld--;
        d[++ld]=i;
        if(d[ls]==i-k)
            ls++;
        if(i>=k)
            s+=a[d[ls]];
    }

    g<<s;
    f.close();
    g.close();
    return 0;
}