Pagini recente » Cod sursa (job #1886623) | Cod sursa (job #3161616) | Cod sursa (job #1007063) | Cod sursa (job #1677095) | Cod sursa (job #2206811)
#include <iostream>
#include <stdio.h>
#include <deque>
using namespace std;
struct elem{int val, poz;};
int main(){
FILE *fin, *fout;
int n, i, j, k, m, l, q;
deque <elem> d;
elem x;
long long sum=0;
fin = fopen("deque.in", "r");
fout = fopen("deque.out", "w");
fscanf(fin,"%d%d", &n, &k);
for(i=1;i<=n;i++){
fscanf(fin, "%d", &l);
x.val=l;
x.poz=i;
while(!d.empty()&&x.val<=d.back().val)
d.pop_back();
d.push_back(x);
q=d.front().val;
if(!d.empty()&&i-k>=0)
sum+=d.front().val;
if(!d.empty()&&i-d.front().poz+1>=k){
d.pop_front();
}
}
fprintf(fout,"%lld", sum);
fclose(fin);
fclose(fout);
return 0;
}