Pagini recente » Cod sursa (job #414666) | Cod sursa (job #640757) | Cod sursa (job #1311118) | Cod sursa (job #414668) | Cod sursa (job #459950)
Cod sursa(job #459950)
#include<cstdio>
FILE*f=fopen("deque.in","r");
FILE*g=fopen("deque.out","w");
int back, front,n,i,k,v[5000010],deque[5000010];
long long s;
int main () {
fscanf(f,"%d%d",&n,&k);
front = 1; back = 0;
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
for(i=1;i<=n;i++){
while(front<=back&&v[i]<=v[deque[back]])
back --;
deque[++back] = i;
if(deque[front]==i-k)
front++;
if(i>=k)
s+=v[deque[front]];
}
fprintf(g,"%lld",s);
fclose(f);
fclose(g);
return 0;
}