Cod sursa(job #3126997)

Utilizator georgeilie4542Ilie George georgeilie4542 Data 7 mai 2023 04:22:42
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <deque>
#include <fstream>

using namespace std;

int main() {
int n,k,i;
long s=0;
ifstream f("deque.in");
ofstream g("deque.out");

f>>n>>k;
int Coada[n];
for (i=0;i<n;i++) {
    f>>Coada[i];
}

deque<int>q;

for (i=0;i<n;i++) {
    while (!q.empty()&&Coada[i]<=Coada[q.back()]) { ///tin coada in ordine crescatoare,pentru a tine elementul din coada ca fiind minimul.
        q.pop_back();
    }
    q.push_back(i);
    if(q.front()<=i-k) {
        q.pop_front();
    }
    if (i>=k-1) {
        s+=Coada[q.front()];
    }
}

g <<s<< endl;
f.close();
g.close();

return 0;
}