Pagini recente » Cod sursa (job #151371) | Cod sursa (job #484821) | Cod sursa (job #2726259) | Cod sursa (job #144432) | Cod sursa (job #2279672)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque <int> d;
int v[5000005];
int main()
{
int n, k;
fin >> n >> k;
for(int i = 1; i <= n; ++i)
fin >> v[i];
for(int i = 1; i <= k; ++i){
if(i == 1)
d.push_back(v[i]);
if(i >= 2){
while(!d.empty() && d.back() > v[i])
d.pop_back();
d.push_back(v[i]);
}
}
long long sum_min = 0;
sum_min += d.front();
for(int i = 2; i <= n - k + 1; ++i){
if(d.front() == v[i - 1])
d.pop_front();
while(!d.empty() && d.back() > v[i + k - 1])
d.pop_back();
d.push_back(v[i + k - 1]);
sum_min += d.front();
}
fout << sum_min << '\n';
return 0;
}