Pagini recente » Cod sursa (job #2054316) | Cod sursa (job #94563) | Cod sursa (job #2401606) | Cod sursa (job #2443140) | Cod sursa (job #2149080)
#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];
inc=1;fn=1;
w[1].nr=v[1];w[1].ind=1;
for(int i=2;i<=n;i++)
{
while(fn>=inc&&w[fn].nr>=v[i])
fn--;
w[++fn].nr=v[i];w[fn].ind=i;
while(i-w[inc].ind>k-1&&inc<=fn)
inc++;
if(i>=k)
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;
}