Pagini recente » Cod sursa (job #973493) | Cod sursa (job #1871003) | Cod sursa (job #580203) | Cod sursa (job #642141) | Cod sursa (job #2691358)
//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]) q.pop_back();
q.push_back(v[i]);
while (i > k && !q.empty() && q.front() == v[i - k]) q.pop_front();
if (i >= k) ans += q.front();
}
cout << ans << '\n';
}