Pagini recente » Cod sursa (job #1007358) | Cod sursa (job #198707) | Cod sursa (job #720777) | Cod sursa (job #352909) | Cod sursa (job #1804214)
#include <iostream>
#include <deque>
#define MAX 5000005
using namespace std;
int n,k,a[MAX];
long long int s;
deque <int> Q;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d\n",&n, &k);
for (int i=1;i<=n;i++)
scanf("%d\n",&a[i]);
for (int i=1;i<k;i++)
{
while (!Q.empty() && a[Q.back()]>a[i])
Q.pop_back();
Q.push_back(i);
}
for (int i=k;i<=n;i++)
{
while (!Q.empty() && a[Q.back()]>a[i])
Q.pop_back();
Q.push_back(i);
if (Q.front()==i-k)
Q.pop_front();
s=s+a[Q.front()];
}
printf("%lld",s);
return 0;
}