Cod sursa(job #2691377)

Utilizator TheGodFather2131Alexandru Miclea TheGodFather2131 Data 28 decembrie 2020 14:13:40
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
//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';
}