Cod sursa(job #2887944)

Utilizator iulia.talpalariuIulia-Georgiana Talpalariu iulia.talpalariu Data 10 aprilie 2022 14:12:02
Problema Deque Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;

int main() {
    ifstream fileIn("deque.in");
    ofstream fileOut("deque.out");
    int n, k, i, a;
    long long suma=0;
    vector <int> vectr;
    vector <int> dQ;
    fileIn >> n >> k;

    for(i=0; i < k-1; i++) {
        fileIn >> a;
        vectr.push_back(a);

        while(!dQ.empty() && a <= vectr[dQ.back()]) {
            dQ.pop_back();

        }

        dQ.push_back(i);

        if (!dQ.empty() && dQ.front() == i-k) {
            dQ.erase(dQ.begin());
        }


    }

    for(i=k-1; i < n; i++) {
        fileIn >> a;
        vectr.push_back(a);

        while(!dQ.empty() && a <= vectr[dQ.back()]) {
            dQ.pop_back();

        }

        dQ.push_back(i);

        if (!dQ.empty() && dQ.front() == i-k) {
            dQ.erase(dQ.begin());
        }



        suma += vectr[dQ.front()];


    }
    fileOut << suma;

    return 0;
}