Pagini recente » Cod sursa (job #1346616) | Cod sursa (job #2773869) | Cod sursa (job #834885) | Cod sursa (job #2965024) | Cod sursa (job #1804128)
#include <cstdio>
#include <deque>
using namespace std;
deque <int> deq;
long long s;
int k, n, a[5000005];
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d %d", &n, &k);
for(int i=1; i<=n; i++)
scanf("%d", &a[i]);
for(int i=1; i<k; i++)
{
while(!deq.empty() && a[i]<a[deq.back()])
deq.pop_back();
deq.push_back(i);
}
for(int i=k; i<=n; i++)
{
while(!deq.empty() && a[i]<a[deq.back()])
deq.pop_back();
deq.push_back(i);
if(deq.back()-deq.front()>=3)
deq.pop_front();
s+=a[deq.front()];
}
printf("%lld", s);
return 0;
}