Pagini recente » Cod sursa (job #2843244) | Cod sursa (job #2028180) | Cod sursa (job #1629329) | Cod sursa (job #311969) | Cod sursa (job #1059765)
#include <cstdio>
#include "btree.h"
using namespace std;
#include<stdio.h>
struct ddd{
int val,poz;
}deq[5000000];
char ss[15];
int main(){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int n,k,i,j,st,dr,x;
long long sol=0;
scanf("%d%d",&n,&k);
st=dr=0;
fgets(ss,10,stdin);
for(i=1;i<=n;++i){
x=0;
fgets(ss,10,stdin);
j=0;
if(ss[0]=='-')
++j;
for(;'0'<=ss[j] && ss[j]<='9';++j)
x=x*10+ss[j]-'0';
if(ss[0]=='-')
x*=(-1);
if(deq[st].poz<=i-k)
++st;
while(deq[dr].val>x && dr>=st)
--dr;
deq[++dr].val=x;
deq[dr].poz=i;
if(i>=k)
sol+=deq[st].val;
}
printf("%lld\n",sol);
fclose(stdin);
fclose(stdout);
return 0;
}