Pagini recente » Cod sursa (job #2740810) | Cod sursa (job #2248598) | Cod sursa (job #1509497) | Cod sursa (job #1162309) | Cod sursa (job #632033)
Cod sursa(job #632033)
#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, "%d", s);
return 0;
}