Pagini recente » Cod sursa (job #2345549) | Cod sursa (job #2235451) | Cod sursa (job #774175) | Cod sursa (job #2039742) | Cod sursa (job #1801825)
#include <iostream>
#include <cstdio>
#include <iostream>
#include <deque>
#define MAX 5000000
using namespace std;
int n, k;
int vec[MAX];
deque<int> dq;
long long suma;
int f=1, b;
void read()
{
scanf("%d %d\n", &n, &k);
for (int i=0; i<n; i++)
scanf("%d\n", &vec[i]);
for (int i=0; i<k-1; i++)
{
while(!dq.empty() && vec[dq.back()] > vec[i])
dq.pop_back();
dq.push_back(i);
}
for (int i=k-1; i<n; i++)
{
while(!dq.empty() && vec[dq.back()] > vec[i])
dq.pop_back();
dq.push_back(i);
if (i - dq.front() >= k)
dq.pop_front();
suma+=vec[dq.front()];
}
}
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
read();
cout<<suma;
return 0;
}