Pagini recente » Cod sursa (job #2099422) | Cod sursa (job #3126215)
#include <iostream>
#include <fstream>
#include <stack>
#include <deque>
#include <vector>
using namespace std;
int main(){
ifstream f("deque.in");
ofstream g("deque.out");
int N, K;
int st=0, dr=0, a, sum=0, i = 0, m = 0;
f >> N >> K;
vector<int> Q(N+1), V(N+1);
while(f>>a){
V[i] = a;
m+=1;
while (dr-st>0 && V[i] <= V[Q[dr-1]]){
dr-=1;
}
Q[dr] = i; dr+=1;
while(Q[st]<=i-K){
st++;
}
if (K<=m){
sum += V[Q[st]];
}
i++;
}
g << sum;
f.close();
g.close();
return 0;
}