Pagini recente » Cod sursa (job #1045719) | Cod sursa (job #823671) | Cod sursa (job #1542246) | Cod sursa (job #1861755) | Cod sursa (job #1059109)
//-2166091628382
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct nod{
int val,poz;
};
nod deque[5000000];
int inc,sf;
void adaug_sf(int v,int i){
while(sf>=inc && v<deque[sf].val) sf--;
if(sf<inc) inc=sf+1;
deque[++sf].val=v;
deque[sf].poz=i;
}
int main(){
int i,n,k,v;
long long s=0;
inc=1;
sf=0;
fin>>n>>k;
for(i=1;i<k;i++){
fin>>v;
adaug_sf(v,i);
}
for(i=k;fin>>v;i++){
if(deque[inc].poz+k-1<i) inc++;
adaug_sf(v,i);
s+=deque[inc].val;
}
cout<<s<<endl;
return 0;
}