Pagini recente » Cod sursa (job #79957) | Cod sursa (job #771788) | Cod sursa (job #2977200) | Cod sursa (job #3204715) | Cod sursa (job #258359)
Cod sursa(job #258359)
#include<stdio.h>
#define N 5000010
int deque[N], v[N];
long long start, end, act, suma;
int main () {
FILE *in=fopen("deque.in","r");
FILE *out=fopen("deque.out","w");
int n,k;
fscanf(in,"%d%d",&n,&k);
for(int i=1;i<=n;++i)
fscanf(in,"%d",&v[i]);
start=1;
end=0;
for(int i=1;i<=n;++i){
while(start <= end && v[i] <= v[deque[end]])
--end;
deque[++end]=i;
if(deque[start] == i-k)
++start;
if(i >= k)
suma += v[deque[start]];
}
fprintf(out,"%lld\n",suma);
return 0;
}