Pagini recente » Cod sursa (job #2152603) | Cod sursa (job #615469) | Cod sursa (job #1852005) | Cod sursa (job #3326317) | Cod sursa (job #3328205)
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define MAXN 5000000
#define QSIZE 5000000 //MAXK
int deque[QSIZE],prim,ultim;
int rsp[MAXN];
int main(){
int n,k,i,nr,scos;
FILE *fin,*fout;
fin=fopen("deque.in","r");
fscanf(fin,"%d%d",&n,&k);
for(i=0;i<n;i++){
if(i>=k){
scos=deque[prim];
if(scos==rsp[i-k]){
prim=(prim+1)%QSIZE;
}
rsp[i-k]=scos;
}
fscanf(fin,"%d",&nr);
rsp[i]=nr;
while(ultim!=prim&&deque[(ultim-1+QSIZE)%QSIZE]>nr){
ultim=(ultim-1+QSIZE)%QSIZE;
}
deque[ultim]=nr;
ultim=(ultim+1)%QSIZE;
}
rsp[n-k]=deque[prim];
fclose(fin);
fout=fopen("deque.out","w");
long long ans=0;
for(i=0;i<n-k+1;i++){
ans+=rsp[i];
}
fprintf(fout,"%lld\n",ans);
fclose(fout);
return 0;
}