Pagini recente » Cod sursa (job #3314818) | Diferente pentru problema/deque intre reviziile 6 si 30 | Cod sursa (job #282500) | Cod sursa (job #2298598) | Cod sursa (job #282604)
Cod sursa(job #282604)
#include <stdio.h>
long st,dr,i,n,k,v[5000010],a[5000010];
long long s;
int main()
{freopen("deque.in","r",stdin);freopen("deque.out","w",stdout);
st=1;dr=0;
scanf("%ld%ld",&n,&k);
for(i=1;i<=n;i++)
{scanf("%ld",&a[i]);
while(st<=dr&&a[v[dr]]>=a[i])dr--;
dr++;v[dr]=i;
if(v[st]==i-k)st++;
if(i>=k)s+=a[v[st]];
}
printf("%lld",s);
fclose(stdin);fclose(stdout);
return 0;
}