Cod sursa(job #3171478)

Utilizator andreifilimonPopescu Filimon Andrei Cosmin andreifilimon Data 18 noiembrie 2023 22:34:45
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <deque>

using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
#define MAXN 5000000

int v[MAXN+1];
deque <int> dq;

int main() {
    int n, k;
    cin>>n>>k;
    int i;
    for(i=0; i<k-1; i++)
    {
        cin>>v[i];
        while(dq.size()>0 && v[dq.back()]>=v[i])
            dq.pop_back();
        dq.push_back(i);
    }
    
    long long sum;
    sum=0;
    for(i=k-1; i<n; i++)
    {
        cin>>v[i];
        if(i-dq.front()==k)
            dq.pop_front();
        while(dq.size()>0 && v[dq.back()]>=v[i])
            dq.pop_back();
        dq.push_back(i);
        sum+=v[dq.front()];
    }
    cout<<sum;
    return 0;
}