Pagini recente » Cod sursa (job #1415300) | Cod sursa (job #1469018) | Cod sursa (job #1664207) | Cod sursa (job #1468895) | Cod sursa (job #1273495)
#include <cstdio>
#include <deque>
using namespace std;
deque<int> V;
long long sum;
int n, A[5000010], k;
void citire()
{
int i;
scanf("%d%d", &n, &k);
for(i=1;i<=n;++i)
scanf("%d", &A[i]);
}
void rezolva_problema()
{
int i;
citire();
deque<int>::iterator it=V.begin();
for(i=1;i<=n;++i)
{
while(it!=V.end()&&A[V.back()]>=A[i])
V.pop_back();
V.push_back(i);
if(V.front()==i-k) V.pop_front();
if(i>=k) sum+=A[V.front()];
}
printf("%lld\n", sum);
}
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
rezolva_problema();
return 0;
}