Pagini recente » Cod sursa (job #1296093) | Cod sursa (job #2674005) | Cod sursa (job #2103193) | Cod sursa (job #2587569) | Cod sursa (job #304836)
Cod sursa(job #304836)
//Arhiva Educationala - Deque
#include <stdio.h>
#define MaxN 5000001
int v[MaxN],n,k;
long long suma;
int deque[MaxN];
int cap, coada;
FILE *f=fopen("deque.in","r");
FILE *g=fopen("deque.out","w");
int main(){
fscanf(f,"%d %d",&n,&k);
for(int i = 1; i <= n; i++)
fscanf(f,"%d\n",&v[i]);
cap = 1;
coada = 0;
for(int i = 1; i <= n; i++){
while ( cap <= coada && v[i] <= v[ deque[coada] ]) --coada;
deque[++coada] = i;
if (deque[cap] == i-k) cap++;
if (i >= k) suma += v[ deque[cap] ];
};
printf("%lld",suma);
};