Pagini recente » Cod sursa (job #2294037) | Cod sursa (job #2859211) | Cod sursa (job #900827) | Cod sursa (job #213631) | Cod sursa (job #926832)
Cod sursa(job #926832)
#include<stdio.h>
#include<deque>
#define pb push_back
#define popb pop_back
#define popf pop_front
#define maxn 5000005
using namespace std;
int n,k;
int v[maxn];
long long int sol;
deque <int> q;
void cit()
{
int i;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
}
void solve()
{
int i;
for(i=1;i<=n;i++)
{
while(!q.empty() && v[q.back()]>=v[i]) q.popb();
q.pb(i);
if(q.front()==i-k) q.popf();
if(i>=k) sol+=v[q.front()];
}
}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
cit();
solve();
printf("%lld",sol);
fclose(stdin);
fclose(stdout);
}