Pagini recente » Cod sursa (job #2498927) | Cod sursa (job #2559936) | Cod sursa (job #1982294) | Cod sursa (job #2150700) | Cod sursa (job #1964754)
#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;
}