Cod sursa(job #2974818)

Utilizator radu._.21Radu Pelea radu._.21 Data 4 februarie 2023 18:11:33
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>


using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
long long suma=0;
int v[5000001];
int n,k;
int main(){
    fin>>n>>k;
    deque<int>Q;
    for(int i=1;i<=n;i++)
        fin>>v[i];
    for(int i=1;i<=k;i++){
        while(!Q.empty() && v[i]<v[Q.front()])
            Q.pop_front();
        Q.push_front(i);
    }
    suma+=v[Q.back()];
    for(int i=k+1;i<=n;i++){
        while(Q.back()<=i-k && !Q.empty()) /// elimin ce nu e in secventa
            Q.pop_back();
        while(!Q.empty() && v[i]<v[Q.front()])
            Q.pop_front();
        Q.push_front(i);
        suma+=v[Q.back()];
    }
    fout<<suma;
    return 0;
}