Cod sursa(job #2926576)

Utilizator tiwerlolPop Iuliu-Daniel tiwerlol Data 18 octombrie 2022 02:22:14
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <map>
#include <climits>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <algorithm>
using namespace std;

#define ll long long
#define ull unsigned long long

const int MOD = 100003;

ofstream cout("deque.out");
ifstream cin("deque.in");

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(0);
    deque<int> dQ;

    int n, k; cin >> n >> k;

    vector<int> v(n);

    for(int z = 0; z < n; z++)
    {
        cin >> v[z];
    }

    ll sum = 0;
    dQ.push_back(0);
    for(int z = 1; z < n; z++)
    {
        while(!dQ.empty() && v[dQ.back()] >= v[z])
        {
            dQ.pop_back();
        }

        dQ.push_back(z);

        if(dQ.front() < z-k+1)
        {
            dQ.pop_front();
        }

        if(z >= k-1)
        {
            sum += v[dQ.front()];
        }
    }
    cout << sum;
}