Pagini recente » Cod sursa (job #3175025) | Cod sursa (job #721396) | Cod sursa (job #2720430) | Cod sursa (job #293802) | Cod sursa (job #2033643)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
const int VSIZE = 5000005;
deque < int > Q;
int N,K;
int a[VSIZE];
long long ans;
inline void Read()
{
fin >> N >> K;
for(int i = 1; i <= N; i++) {
fin >> a[i];
}
}
inline void ADD(int x)
{
while(!Q.empty() && a[x] <= a[Q.back()]) Q.pop_back();
Q.push_back(x);
}
inline void Solve()
{
int i;
for(i = 1; i <= K; i++) ADD(i);
ans += a[Q.front()];
for(i; i <= N; i++) {
while(!Q.empty() && i - Q.front() >= K) Q.pop_front();
ADD(i);
ans += a[Q.front()];
}
fout << ans << "\n";
fout.close();
}
int main()
{
Read();
Solve();
return 0;
}