Cod sursa(job #3127366)

Utilizator cristiosmCristian Magureanu cristiosm Data 7 mai 2023 14:58:39
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

const int maxim = 5000001;
int n, k, a[maxim], d[maxim], cap = 1, coada = 0;

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

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

    long long sum = 0;
    for (int i = 1; i <= n; i++) {
        if (cap <= coada && d[cap] <= i - k) {
            cap++;
        }
        while (cap <= coada && a[d[coada]] >= a[i]) {
            coada--;
        }
        d[++coada] = i;
        if (i >= k) {
            sum += a[d[cap]];
        }
    }

    fout << sum << endl;

    fin.close();
    fout.close();

    return 0;
}