Pagini recente » Cod sursa (job #2959680) | Cod sursa (job #2709904) | Cod sursa (job #3003385) | Cod sursa (job #177893) | Cod sursa (job #2727766)
#include <bits/stdc++.h>
using namespace std;
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k, i, val;
long long sol = 0;
///val, poz
deque <pair <int, int> > minim;
fin >> n >> k;
for(i = 1; i <= k; ++i){
fin >> val;
while(!minim.empty() && minim.back().first >= val){
minim.pop_back();
}
minim.push_back({val, i});
}
sol += minim.front().first;
for(; i <= n; ++i){
if(minim.front().second < i - k + 1){
minim.pop_front();
}
fin >> val;
while(!minim.empty() && minim.back().first >= val){
minim.pop_back();
}
minim.push_back({val, i});
sol += minim.front().first;
}
fout << sol;
return 0;
}