Pagini recente » Cod sursa (job #219540) | Cod sursa (job #1757136) | Cod sursa (job #785006) | Cod sursa (job #1018541) | Cod sursa (job #1801821)
#include <iostream>
#include <cstdio>
#include <deque>
using namespace std;
int v[5000005];
deque < int > Q;
int front1=1,back1=0,n,k;
long long S;
void citire()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
{
scanf("%d",&v[i]);
}
Q.push_front(1);
for(int i=2;i<=n;i++)
{
if(Q.front()==i-k)
Q.pop_front();
while(v[i]<=v[Q.back()]&&!Q.empty())
Q.pop_back();
Q.push_back(i);
if(i>=k)
S+=v[Q.front()];
}
printf("%lld",S);
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
citire();
//cout << "Hello world!" << endl;
return 0;
}