Pagini recente » Cod sursa (job #3304070) | Cod sursa (job #2530211)
#include <stdio.h>
#include <stdlib.h>
int coada[5000001],v[5000001];
int main(){
FILE *fin,*fout;
long long int n,k,i,prim,ultim,s;
fin=fopen("deque.in", "r");
fout=fopen("deque.out", "w");
fscanf(fin, "%d%d", &n,&k);
for(i=0;i<n;i++)
fscanf(fin, "%d", &v[i]);
prim=ultim=0;
coada[0]=v[0];
for(i=1;i<k;i++){
while(ultim>=prim && v[i]<coada[ultim])
ultim--;
ultim++;
coada[ultim]=v[i];
}
s=coada[prim];
for(i=k;i<n;i++){
if(v[i-k]==coada[prim])
prim++;
while(ultim>=prim && v[i]<coada[ultim])
ultim--;
ultim++;
coada[ultim]=v[i];
s+=coada[prim];
}
fclose(fin);
fprintf(fout, "%d\n", s);
fclose(fout);
return 0;
}