Pagini recente » Cod sursa (job #2821548) | Cod sursa (job #2816842) | Cod sursa (job #1350419) | Cod sursa (job #1307604) | Cod sursa (job #2767679)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
long long int ans;
int main() {
int n, k, elem;
f >> n >> k >> elem;
deque<pair<int, int>> minimumElem;
minimumElem.push_back({1, elem});
for (int i = 2; i <= n; ++i) {
f >> elem;
while (minimumElem.size() > 0 && minimumElem.back().second > elem) {
minimumElem.pop_back();
}
minimumElem.push_back({i, elem});
if (i >= k) {
ans += (long long int)minimumElem.front().second;
if (minimumElem.front().first == i - k + 1) {
minimumElem.pop_front();
}
}
}
g << ans;
return 0;
}