Pagini recente » Cod sursa (job #469778) | Cod sursa (job #1953454) | Cod sursa (job #1347758) | Cod sursa (job #2821199) | Cod sursa (job #367642)
Cod sursa(job #367642)
#include<stdio.h>
#define Nmax 5000020
long long S;
int D[Nmax], V[Nmax];
int i, p, u, k, n;
FILE * f = fopen ("deque.in", "r");
FILE * g = fopen ("deque.out", "w");
int main () {
fscanf(f, "%d %d", &n, &k);
for (i = 1 ; i <= n ; i++)
fscanf (f, "%d", &V[i]);
for (i = 1 ; i <= n ; i++) {
while ( p <= u && V[i] <= V[D[u]] )
u--;
D[++u] = i;
if (D[p] == i-k) {
D[p] = 0;
p++;
}
if (i >= k)
S += V[D[p]];
}
fprintf (g, "%lld", S);
fclose(f);
fclose(g);
return 0;
}