Cod sursa(job #2938195)

Utilizator BeneIonut2208Bene Ionut-Matei BeneIonut2208 Data 11 noiembrie 2022 19:25:04
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <vector>

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

deque <int> d;

int n, k, x;
vector <int> a;
long long rez;

void citire()
{
    fin >> n >> k;
    for(int i = 0; i < n; i++)
    {
        fin >> x;
        a.push_back(x);
    }
}

void sum()
{
    d.push_back(0);
    for(int i = 1; i < n; i++)
    {
        while(!d.empty() && a[d.back()] >= a[i])
            d.pop_back();
        d.push_back(i);
        if(d.front() <= i - k)
            d.pop_front();
        if(i >= k - 1)
            rez += a[d.front()];
    }
}

int main()
{
    citire();
    sum();
    fout << rez;
    return 0;
}