Pagini recente » Cod sursa (job #1542125) | Cod sursa (job #640371) | Cod sursa (job #635332) | Cod sursa (job #2093473) | Cod sursa (job #765923)
Cod sursa(job #765923)
#include <stdio.h>
int n, k, i, front, back, deque[5000007], a[5000007];
long long int sum;
FILE *in, *out;
int main()
{
in = fopen("deque.in", "r");
out = fopen("deque.out", "w");
fscanf(in, "%d %d", &n, &k);
for(i = 0; i < n; i++)
fscanf(in, "%d", &a[i]);
back = -1;
for(i = 0; i < n; ++i)
{
while(front <= back && a[i] <= a[ deque[back] ])
back--;
deque[ ++back ] = i;
if(deque[front] == i - k)
++front;
if(i + 1 >= k)
sum += a[ deque[front] ];
}
fprintf(out, "%lld\n", sum);
fclose(in);
fclose(out);
return 0;
}