Pagini recente » Cod sursa (job #2473458) | Cod sursa (job #554473) | Cod sursa (job #2966680) | Cod sursa (job #2084752) | Cod sursa (job #2149050)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct chestie{
int nr,ind;
}w[5000011];
int v[5000011];
long long s,n,k,fn,inc;
bool comp(chestie a,chestie b);
int main()
{
fin>>n>>k;
for(int i=1;i<=n;i++)
{
fin>>v[i];
if(i<=k)
w[i].nr=v[i],w[i].ind=i;
}
sort(w+1,w+k+1,comp);
s=w[1].nr;
inc=1;fn=k;
for(int i=k+1;i<=n;i++)
{
while(fn&&w[fn].nr>=v[i])
fn--;
w[++fn].nr=v[i];w[fn].ind=i;
while(i-w[inc].ind>k-1)
inc++;
s+=w[inc].nr;
}
fout<<s<<'\n';
return 0;
}
bool comp(chestie a,chestie b)
{
if(a.nr<b.nr)
return 1;
if(a.nr>b.nr)
return 0;
if(a.ind<b.ind)
return 1;
return 0;
}