Pagini recente » Cod sursa (job #1975754) | Cod sursa (job #3275981) | Cod sursa (job #597077) | Cod sursa (job #2645338) | Cod sursa (job #2163610)
#include<iostream>
#include<fstream>
#include<deque>
#include<stdlib.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct elem{
int val,poz;
};
elem x,y,t;
int n,k,s;
deque <elem> q,r;
int main(){
f>>n>>k;
f>>x.val;
x.poz=1;
q.push_back(x);
for(int i=2; i<=n; ++i){
f>>x.val;
x.poz=i;
y=q.front();
while(abs(y.poz-x.poz) >= k){
q.pop_front();
if(q.empty())break;
y=q.front();
}
y=q.back();
while( (y.val>x.val)){
q.pop_back();
if(q.empty())break;
y=q.back();
}
q.push_back(x);
if(i>=k){
t=q.front();
s=s+t.val;
}
}
g<<s<<'\n';
}