Pagini recente » Cod sursa (job #3195352) | Cod sursa (job #2391788) | Cod sursa (job #824267) | Cod sursa (job #197528) | Cod sursa (job #632673)
Cod sursa(job #632673)
#include<cstdio>
#include<deque>
using namespace std;
FILE *in = fopen("deque.in", "r"), *out = fopen("deque.out", "w");
deque <int> lista, indice;
int n, k;
long long s;
int main(){
fscanf (in, "%d %d", &n, &k);
int i, x;
for (i = 1; i <= n; i++){
fscanf(in, "%d", &x);
while (!lista.empty() && x <= lista.back()) {lista.pop_back(); indice.pop_back();}
lista.push_back(x);
indice.push_back(i);
if (indice.front() <= i - k) {lista.pop_front(); indice.pop_front();}
if (i >= k) s += lista.front();
}
fprintf(out, "%lld", s);
return 0;
}