Pagini recente » Cod sursa (job #2598403) | Cod sursa (job #138597) | Cod sursa (job #406318) | Cod sursa (job #2299463) | Cod sursa (job #3172345)
#include <bits/stdc++.h>
// void print_deque(std::deque<int>& d, int* p) {
// for(auto x : d) std::cout << x << '[' << p[x] << ']' << '\t'; std::cout << std::endl;
// }
int main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(0); std::cout.tie(0);
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int n, k; std::cin >> n >> k;
long long sum = 0;
std::vector<int> arr(n); for(auto& x : arr) std::cin >> x;
std::deque<int> deck(0);
for(int i = 0; i < n; i++) {
while(!deck.empty() && arr[deck.back()] >= arr[i]) deck.pop_back();
deck.push_back(i);
if(deck.front() == i - k) deck.pop_front();
//print_deque(deck, arr.data());
if(i >= k - 1) sum += (long long)arr[deck.front()];
}
std::cout << sum;
return 0;
}