Pagini recente » Cod sursa (job #1848820) | Cod sursa (job #1804666) | Cod sursa (job #834282) | Cod sursa (job #2211530) | Cod sursa (job #312329)
Cod sursa(job #312329)
#include<stdio.h>
FILE *f,*g;
long n,k,li,ls,i,a[5000001],st[5000001],j,ok;
long long suma;
int main()
{ f=fopen("deque.in","r"); g=fopen("deque.out","w");
fscanf(f,"%ld%ld",&n,&k);
li=1; ls=0; suma=0;
for(i=1;i<=n;i++)
{ fscanf(f,"%ld",&a[i]);
ls++; st[ls]=i;
j=ls;
while(j>li&&a[st[j]]<a[st[j-1]])
{ st[j-1]=st[j]; j--; }
ls=j;
ok=1; j=li;
while(ok)
{ if(st[j]>=i-k+1&&ok) { if(i>=k) suma=suma+a[st[j]]; ok=0; }
else { if(i>k) li++; j=li; }
}
}
fprintf(g,"%lld",suma);
fclose(g);
return 0;
}