Pagini recente » Cod sursa (job #315926) | Cod sursa (job #544592) | Cod sursa (job #2590535) | Cod sursa (job #86244) | Cod sursa (job #2038061)
#include <stdio.h>
#include <stdlib.h>
#include <deque>
using namespace std;
#define MAXN 5000000
int v[MAXN];
deque <int> deq;
int main()
{
int n, k, i;
long long sum_min;
FILE *fi, *fo;
fi = fopen("deque.in", "r");
fo = fopen("deque.out", "w");
fscanf(fi, "%d%d", &n, &k);
for(i=0; i<n; i++)
fscanf(fi, "%d", &v[i]);
sum_min=0;
for(i=0; i<n; i++) {
while(deq.empty()!=1 && v[i]<v[deq.back()])
deq.pop_back();
deq.push_back(i);
if(i-k+1>deq.front())
deq.pop_front();
if(i>=k-1)
sum_min+=v[deq.front()];
}
fprintf(fo, "%lld", sum_min);
fclose(fi);
fclose(fo);
return 0;
}