Cod sursa(job #1964754)

Utilizator RaZxKiDDavid Razvan RaZxKiD Data 13 aprilie 2017 17:29:35
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

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

int n,k;
int V[5000005];

struct elem{
    int ind,val;
};

void read(){
    in>>n>>k;
    for(int i=1;i<=n;i++){
        in>>V[i];
    }
}
void solve(){
    deque<elem> DQ;
    long long r=0;
    for(int i=1;i<=n;i++){
        while(DQ.size()>=1&&DQ.back().val>V[i])
            DQ.pop_back();
        DQ.push_back({i,V[i]});
        if(i-DQ.front().ind+1>k)
            DQ.pop_front();
        if(i>=k)
            r+=DQ.front().val;
    }
    out<<r;
}
int main(){
    read();
    solve();
    return 0;
}