Pagini recente » Cod sursa (job #1609500) | Cod sursa (job #1608436) | Cod sursa (job #2290323) | Cod sursa (job #2304526) | Cod sursa (job #1804150)
#include <fstream>
#include <deque>
#include <iostream>
using namespace std;
long long suma;
int nr, k, i, a[5000002];
deque <int> dequeue;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d", &nr, &k);
for(i=1; i<=nr; i++)
scanf("%d", &a[i]);
dequeue.push_back(1);
for(i=2; i<=nr; i++)
{
while(!dequeue.empty() && a[i]<a[dequeue.front()])
dequeue.pop_front();
dequeue.push_front(i);
if(i>=k)
suma+=a[dequeue.back()];
while(!dequeue.empty() && dequeue.back()<=i-k+1)
dequeue.pop_back();
}
cout << suma;
}