Pagini recente » Cod sursa (job #2037232) | Cod sursa (job #503887) | Cod sursa (job #1573784) | Cod sursa (job #1191656) | Cod sursa (job #293476)
Cod sursa(job #293476)
#include<cstdio>
#include<vector>
#include<deque>
#define N 5000010
using namespace std;
int n,k,front,back,v[N],q[N];
long long sum;
void read()
{
scanf("%d%d",&n,&k);
for( int i=1 ; i<=n ; ++i )
{
scanf("%d",&v[i]);
}
}
void dreapta(int i)
{
while( front<=back && v[i]<=v[q[back]])
back--;
}
void stanga(int i)
{
if(q[front]==i-k)
++front;
}
void solve()
{
front=1;
back=0;
for( int i=1 ; i<=n ; ++i )
{
dreapta(i);
q[++back]=i;
stanga(i);
if(i>=k)
sum+=v[q[front]];
}
printf("%d",sum);
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
read();
solve();
printf("%lld",sum);
return 0;
}