Cod sursa(job #1521466)

Utilizator superstar1998Moldoveanu Vlad superstar1998 Data 10 noiembrie 2015 15:20:25
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <iostream>
#include <fstream>
#define MAX_N 500001
using namespace std;
int A[MAX_N],D[MAX_N];
int n,k,Front,Back;
long long S;
int main()
{
    ifstream f("deque.in");
    f>>n>>k;
    Front=1;
    Back=0;
    for(int i=1;i<=n;i++)
    {
        f>>A[i];
        while(Front<=Back && A[i]<=A[D[Back]])Back--;
        D[++Back]=i;
        if(D[Front]==i-k) Front++;
        if(i>=k)S+=A[D[Front]];
    }
    f.close();
    ofstream g("deque.out");
    g<<S;
    g.close();
    return 0;
}