Pagini recente » Cod sursa (job #353913) | Cod sursa (job #2933151) | Cod sursa (job #981912) | Cod sursa (job #2881189) | Cod sursa (job #2691366)
//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;
ll 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] || (i > k && q.back() == v[i - k]))) q.pop_back();
q.push_back(v[i]);
while (i > k && q.front() == v[i - k]) q.pop_front();
if (i >= k) ans += q.front();
}
cout << ans << '\n';
}