Pagini recente » Cod sursa (job #3311081) | Cod sursa (job #3312382) | Cod sursa (job #1006093) | Cod sursa (job #3317295) | Cod sursa (job #3330427)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
struct deq{
int val, poz;
} a[5000001];
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k, i, st, dr;
long long s=0;
fin>>n>>k;
dr=-1;
st=0;
for(i=0;i<n;i++){
dr++;
fin>>a[dr].val;
a[dr].poz=i;
while(dr>st&&a[dr].val<=a[dr-1].val){
dr--;
a[dr].val=a[dr+1].val;
a[dr].poz=a[dr+1].poz;
}
if(i-a[st].poz>=k){
st++;
}
if(i>=k-1){
s+=a[st].val;
// cout<<i<<' '<<a[st].poz<<' '<<a[st].val<<'\n';
}
}
fout<<s;
return 0;
}