Pagini recente » Cod sursa (job #2890273) | Cod sursa (job #1751961) | Cod sursa (job #2575553) | Cod sursa (job #2082107) | Cod sursa (job #1904707)
#include <stdio.h>
#include <stdlib.h>
int deque[5000000], v[5000000];
int main()
{
FILE *fin, *fout;
int n, i, b, e, k;
long long suma;
fin=fopen("deque.in", "r");
fscanf(fin, "%d%d", &n, &k);
e=-1;
for(i=0; i<k; i++){
fscanf(fin, "%d", &v[i]);
while(e>=0 && v[i]<v[deque[e]])
--e;
deque[++e]=i;
}
b=0; suma=v[deque[b]];
for(i=k; i<n; i++){
fscanf(fin, "%d", &v[i]);
if(i==deque[b]+k)
++b;
while(e>=b && v[i]<v[deque[e]])
--e;
deque[++e]=i;
suma+=(long long)v[deque[b]];
}
fclose(fin);
fout=fopen("deque.out", "w");
fprintf(fout, "%lld\n", suma);
fclose(fout);
return 0;
}