Cod sursa(job #2773318)

Utilizator GhiuzanuEdward Ghiuzan Ghiuzanu Data 6 septembrie 2021 14:14:17
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

int n, k, front, back, v[5000001], deque[5000001];
long sum;

int main() {
    fin>>n>>k;
    for (int i = 1; i <= n; ++i)
        fin>>v[i];
    front = 1;
    back = 0;
    for (int i = 1; i <= n; ++i) {
        while (front <= back && v[i] <= v[deque[back]])
            back--;
        deque[++back] = i;
        if (deque[front] == i - k)
            front++;
        if (i >= k)
            sum = sum + v[deque[front]];
    }
    fout<<sum;
    return 0;
}