Pagini recente » Cod sursa (job #2099709) | Cod sursa (job #526331) | Cod sursa (job #673933) | Istoria paginii runda/moisil2009-10/clasament | Cod sursa (job #1059112)
//-2166091628382
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct nod{
int val,poz;
};
nod deque[5000020];
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;
}
fout<<s<<endl;
return 0;
}