Pagini recente » Cod sursa (job #803969) | Cod sursa (job #1149549) | Cod sursa (job #2741114) | Cod sursa (job #81769) | Cod sursa (job #304835)
Cod sursa(job #304835)
//Arhiva Educationala - Deque
#include <stdio.h>
#define MaxN 5000001
long long v[MaxN],n,k,suma;
long long 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);
};