Pagini recente » Cod sursa (job #3333450) | Cod sursa (job #1945876) | Cod sursa (job #3320780) | Cod sursa (job #3339992) | Cod sursa (job #2680652)
#include <stdio.h>
#include <stdlib.h>
int v[5000000],p[5000000];
int main()
{
int n,k,i,st,dr,s,j,a;
FILE *fin, *fout;
fin=fopen("deque.in","r");
fscanf(fin,"%d%d",&n,&k);
st=0;
dr=0;
for(i=0;i<k;i++){
fscanf(fin,"%d",&a);
while(dr>st && a<=v[dr-1])
dr--;
v[dr]=a;
p[dr]=i;
dr++;
// for(j=st;j<dr;j++)
// printf("%d ",v[j]);
// printf("\n");
}
s=v[st];
for(;i<n;i++){
if(i-k>=p[st])
st++;
fscanf(fin,"%d",&a);
while(dr>st && a<=v[dr-1])
dr--;
v[dr]=a;
p[dr]=i;
dr++;
s+=v[st];
// for(j=st;j<dr;j++)
// printf("%d ",v[j]);
// printf("\n");
}
fclose(fin);
fout=fopen("deque.out","w");
fprintf(fout,"%d",s);
fclose(fout);
return 0;
}