Pagini recente » Cod sursa (job #3267437) | Cod sursa (job #2908722) | Cod sursa (job #765233) | Cod sursa (job #3265275) | Cod sursa (job #629953)
Cod sursa(job #629953)
#include <stdio.h>
int q[5000001],r[5000001],n,k,p,u;
long long s;
inline void push(int x,int i){
while(u>=p&&q[u]>=x)u--;
q[++u]=x; r[u]=i;
}
inline void pop(int x){
while(p<=u&&r[p]<=x)p++;
}
int main(){
int i,x;
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d",&n,&k);
for(i=1;i<=k;i++){scanf("%d",&x);push(x,i);};s=q[p];
for(i=k+1;i<=n;i++){
scanf("%d",&x);
pop(i-k);push(x,i);s+=q[p];}
printf("%lld\n",s);
}