Cod sursa(job #2816767)

Utilizator GBELOLCornel Dudau GBELOL Data 12 decembrie 2021 01:08:51
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include<bits/stdc++.h>
using namespace std;
#define io ios_base::sync_with_stdio(false);cin.tie(NULL)
typedef long double ld;
typedef long long ll;
typedef unsigned long long ull;
ifstream f("deque.in");
ofstream g("deque.out");
int n, k;
deque<int> q;
const int mex = 5000000;
int v[mex + 5];
int main() {
    io;
    f >> n >> k;
    ll sum = 0;
    
    for (int i = 0; i < n; i++)
        f >> v[i];
    for (int i = 0; i < k; i++) {
        while (!q.empty() && q.back() > v[i])
            q.pop_back();
        q.push_back(v[i]);
    }
    sum += 1LL*q.front();
    for (int i = 0; i < n - k; i++) {
        if (!q.empty() && q.front() == v[i])
            q.pop_front();
        int next = v[i + k];
        while (!q.empty() && q.back() > next)
            q.pop_back();
        q.push_back(next);
        sum += 1LL*q.front();
    }
    g << sum;

    return 0;
}