Pagini recente » Cod sursa (job #952601) | Cod sursa (job #1764977) | Cod sursa (job #660551) | Cod sursa (job #276326) | Cod sursa (job #350800)
Cod sursa(job #350800)
#include<stdio.h>
long n,k,i,x,st,dr,q[5000000],s;
long poz[5000000];
void rez()
{
scanf("%ld %ld",&n,&k);
st=1;
for(i=1;i<=k;++i)
{
scanf("%ld",&x);
while(x<q[dr] && dr>=st) dr--;
q[++dr]=x;
poz[dr]=i;
}
for(i=k+1;i<=n+1;++i)
{
if(i<=n) scanf("%ld",&x);
if(poz[st]==i-k)
{
s+=q[st];
st++;
}
else
if(poz[st]>i-k)
s+=q[st];
while(x<q[dr] && dr>=st) dr--;
q[++dr]=x;
poz[dr]=i;
}
printf("%ld\n",s);
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
rez();
return 0;
}