Pagini recente » Cod sursa (job #1775685) | Cod sursa (job #458884) | Cod sursa (job #1583427) | Cod sursa (job #619155) | Cod sursa (job #2021482)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstdio>
#include <string>
#include <string.h>
#include <vector>
#include <queue>
#include <deque>
using namespace std;
ofstream out("deque.out");
int n,k,sum,deq[5000010],fr,bk;
vector<int> v;
int main()
{
freopen("deque.in", "r", stdin);
scanf("%d %d ", &n, &k);
v=vector<int>(n+1);
for(int i=1; i<=n; i++)
{
int x;
scanf("%d ", &x);
v[i]=x;
}
deq[++fr]=1;
bk=1;
for(int i=2; i<=n; i++)
{
while(fr<=bk and v[i]<=v[deq[bk]]) bk--;
deq[++bk]=i;
if(deq[fr]==i-k) fr++;
if(i>=k) sum+=v[deq[fr]];
}
out<<sum;
return 0;
}