Pagini recente » Cod sursa (job #839230) | Cod sursa (job #3246825) | Cod sursa (job #2282627) | Cod sursa (job #2915103) | Cod sursa (job #259642)
Cod sursa(job #259642)
#include <stdio.h>
#define maxn 5000010
#define in "deque.in"
#define out "deque.out"
FILE *f=fopen(in,"r"),*g=fopen(out,"w");
int n,k,a[maxn],deque[maxn],front,back;
long long suma;
int main(){
int i;
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[deque[back]])back--;
deque[++back]=i;
if(deque[front]==i-k)front++;
if(i>=k)suma+=a[deque[front]];
}
fprintf(g,"%lld\n",suma);
fclose(f);
fclose(g);
return 0;
}