Pagini recente » Cod sursa (job #3158221) | Cod sursa (job #2172381) | Cod sursa (job #916177) | Cod sursa (job #3165401) | Cod sursa (job #806991)
Cod sursa(job #806991)
#include <cstdlib>
#include <stdio.h>
#define SIZE 5000001
int deq[SIZE];
int vect[SIZE];
int main(int argc, char argv[])
{
FILE *input = fopen("deque.in","r");
FILE *output = fopen("deque.out","w");
int n;
int k;
long long sum = 0;
fscanf(input,"%d",&n);
fscanf(input,"%d",&k);
for (int i=0;i<n;i++)
{
fscanf(input,"%d",&vect[i]);
}
int start = 0;
int end = -1;
for (int i=0;i<n;i++)
{
int ie = end;
int is = start;
while (end >= start && vect[i] <= vect[deq[end]])
{
end--;
}
end++;
deq[end] = i;
if (deq[start] == i-k) start++;
if (i >= k-1) sum += vect[deq[start]];
}
fprintf(output,"%lld",sum);
fclose(input);
fclose(output);
}