Pagini recente » Cod sursa (job #1745813) | Cod sursa (job #248123) | Cod sursa (job #1687198) | Cod sursa (job #234321) | Cod sursa (job #474169)
Cod sursa(job #474169)
#include <stdio.h>
FILE*f = fopen("deque.in","r");
FILE*g = fopen("deque.out","w");
int n,k,i,front,back;
int a[5000010],d[5000010];
long long s;
int main() {
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++)
fscanf(f,"%d",&a[i]);
front=1, back=0;
for(i=1;i<=n;i++){
while(front<=back && a[i] <= a[d[back]])
back--;
d[++back]=i;
if (d[front] == i-k)
front++;
if(i>=k)
s+=a[d[front]];
}
fprintf(g,"%lld",s);
fclose(f);
fclose(g);
return 0;
}