Pagini recente » Cod sursa (job #1977854) | Cod sursa (job #1768395) | Cod sursa (job #349376) | Cod sursa (job #2200842) | Cod sursa (job #339306)
Cod sursa(job #339306)
#include<cstdio>
int d[5000001],st,dr,n,i,j,k,a[5000001];
long long S;
void push(int i)
{
while(st<=dr)
if(a[d[dr]]>=a[i])
--dr;
else
break;
d[++dr]=i;
}
long long pop(int k)
{
while(d[st]<k)
++st;
return a[d[st]];
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d",&n,&k);
st=0,dr=-1;
for(i=1;i<k;++i)
{
scanf("%d",&a[i]);
push(i);
}
for(i=k,j=1;i<=n;++i,++j)
{
scanf("%d",&a[i]);
push(i);
S += pop(j);
}
printf("%lld",S);
fclose(stdout);
return 0;
}