Pagini recente » Cod sursa (job #984635) | Cod sursa (job #2386486) | Cod sursa (job #1363070) | Cod sursa (job #52500) | Cod sursa (job #2264651)
#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.front()==i-k)
deq.pop_front();
s+=a[deq.front()];
}
printf("%lld", s);
return 0;
}