Cod sursa(job #2889537)

Utilizator DariaClemClem Daria DariaClem Data 12 aprilie 2022 21:41:37
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

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

long long numere[5000000], pozitii[5000000];
int nrElemente, k;

int main() {
    long long index, numar, suma = 0, stangaNumere, dreaptaNumere;
    fin >> nrElemente >> k;
    stangaNumere = 0;
    dreaptaNumere = -1;
    for (index = 0; index < nrElemente; index += 1) {
        fin >> numar;
        while (stangaNumere <= dreaptaNumere and numar <= numere[dreaptaNumere]) {
            dreaptaNumere -= 1;
        }
        numere[++dreaptaNumere] = numar;
        pozitii[dreaptaNumere] = index;
        while (stangaNumere <= dreaptaNumere and pozitii[stangaNumere] <= index - k) {
            stangaNumere += 1;
        }
        if (index >= k - 1) {
            suma += numere[stangaNumere];
        }
    }
    fout << suma;
    return 0;
}