Pagini recente » Cod sursa (job #1684623) | Cod sursa (job #586812) | Cod sursa (job #851120) | Cod sursa (job #1595021) | Cod sursa (job #2691377)
//ALEXANDRU MICLEA
#include <vector>
#include <algorithm>
#include <string>
#include <string.h>
#include <cstring>
#include <queue>
#include <map>
#include <set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>
#include <assert.h>
using namespace std;
using ll = long long;
#include <fstream>
//ifstream cin("input.in"); ofstream cout("output.out");
ifstream cin("deque.in"); ofstream cout("deque.out");
//VARIABLES
deque <ll> q;
int v[5000005];
ll ans = 0;
//FUNCTIONS
//MAIN
int main() {
int n, k; cin >> n >> k;
for (int i = 1; i <= n; i++){
cin >> v[i];
}
for (int i = 1; i <= n; i++){
while (!q.empty() && q.back() >= v[i]) q.pop_back();
q.push_back(v[i]);
if (i > k && q.front() == v[i - k]) q.pop_front();
if (i >= k) ans += 1LL * v[q.front()];
}
cout << ans << '\n';
}