Cod sursa(job #1048635)

Utilizator MarghescuGabriel Marghescu Marghescu Data 6 decembrie 2013 10:22:39
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#define maxn 5000002
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k;
int a[maxn],b[maxn];
int front,back;
long long suma;

int main()
{
    f>>n>>k;
    for(int i=1;i<=n;i++)
        f>>a[i];

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

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