Cod sursa(job #2079074)

Utilizator alexsandulescuSandulescu Alexandru alexsandulescu Data 30 noiembrie 2017 15:22:07
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>

using namespace std;

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

int N, K, u = -1, p, a[5000003], q[5000003];
long long sum;
int main()
{
    f >> N >> K;
    for(int i = 1; i <= N; i++) f >> a[i];
    for(int i = 1; i <= N; i++) {
        if(p <= u && q[p] <= i - K) p++; //, afis(q, sum);
        while(p <= u)
            if(a[q[u]] >= a[i]) u--;//, afis(q, sum);
            else break;
        q[++u] = i; //, afis(q, sum);
        if(i >= K) sum += a[q[p]]; //, afis(q, sum);
    }
    g << sum << "\n";
    return 0;
}