Pagini recente » Cod sursa (job #2404246) | Cod sursa (job #753431) | Cod sursa (job #1954416) | Cod sursa (job #1860784) | Cod sursa (job #2037960)
#include <stdlib.h>
#include <stdio.h>
#include <deque>
using namespace std;
#define MAXN 5000000
deque <int> deq;
int v[MAXN];
int main()
{
int n, k, i, poz;
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<k; i++)
for(i=0; i<n; i++) {
while(deq.empty()!=1 && v[i]<deq.back())
deq.pop_back();
if(deq.empty()==1)
poz=i;
deq.push_back(v[i]);
if(i-k+1>poz)
deq.pop_front();
if(i>=k-1)
sum_min+=deq.front();
}
fprintf(fo, "%lld", sum_min);
fclose(fi);
fclose(fo);
return 0;
}