Pagini recente » Cod sursa (job #30371) | Cod sursa (job #2189691) | Cod sursa (job #1614832) | Cod sursa (job #2713607) | Cod sursa (job #3260561)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N_MAX = 5e6 + 1;
int N, K;
int v[N_MAX];
ll sum;
void SetInput(string name)
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
freopen((name + ".in").c_str(), "r", stdin);
freopen((name + ".out").c_str(), "w", stdout);
}
deque<int> mini; // always sorted
int main()
{
SetInput("deque");
cin >> N >> K;
for(int i = 0; i < K; i++)
{
cin >> v[i];
while( !mini.empty() && v[i] < mini.front())
mini.pop_front();
mini.push_front(v[i]);
}
sum = mini.back();
for(int i = K; i < N; i++)
{
cin >> v[i];
while( !mini.empty() && v[i] < mini.front())
mini.pop_front();
mini.push_front(v[i]);
if(mini.back() == v[i-K])
mini.pop_back();
sum += (ll) mini.back();
}
cout << sum;
return 0;
}