Pagini recente » Cod sursa (job #1833120) | Cod sursa (job #1832903) | Cod sursa (job #905508) | Cod sursa (job #3169104) | Cod sursa (job #631993)
Cod sursa(job #631993)
#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, 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, "%d", s);
return 0;
}