Pagini recente » Cod sursa (job #3178190) | Cod sursa (job #1353615) | Cod sursa (job #2550570) | Cod sursa (job #1078528) | Cod sursa (job #792777)
Cod sursa(job #792777)
#include<cstdio>
using namespace std;
long long deq[5000001],poz[5000001],n,k;
int main(){
long long x,p,u,s=0,i;
freopen("deque.in","r",stdin);
scanf("%lld%lld",&n,&k);
for(i=1,p=1,u=1;i<=n;i++){
scanf("%lld",&x);
if(u==1){
poz[u]=i;
deq[u++]=x;
}
else{
while(deq[u-1]>=x && p<u)
u--;
poz[u]=i;
deq[u++]=x;
}
if(i>=k)
s+=deq[p];
if(i-k+1>=poz[p])
p++;
}
fclose(stdin);
freopen("deque.out","w",stdout);
printf("%lld\n",s);
fclose(stdout);
return 0;
}