Pagini recente » Cod sursa (job #421321) | Cod sursa (job #1686250) | Cod sursa (job #477700) | Cod sursa (job #2784222) | Cod sursa (job #256911)
Cod sursa(job #256911)
#include<stdio.h>
struct bla{
long long inf, poz;
};
bla deque[5000];
long long start, end, act, suma;
int main () {
FILE *in=fopen("deque.in","r");
FILE *out=fopen("deque.out","w");
int n,k,x;
fscanf(in,"%d%d",&n,&k);
fscanf(in,"%d",&x);
start=end=1;
deque[1].inf=x;
deque[1].poz=1;
act=1;
for(int i=2;i<=n;++i){
fscanf(in,"%d",&x);
if(i-act==k){
suma+=deque[start].inf;
if(deque[start].poz==act)
++start;
++act;
}
while(start <= end && x < deque[end].inf)
--end;
deque[++end].inf=x;
deque[end].poz=i;
}
fprintf(out,"%lld\n",suma+deque[start].inf);
return 0;
}