Cod sursa(job #2353142)

Utilizator PetrescuAlexandru Petrescu Petrescu Data 23 februarie 2019 21:50:42
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>
#include <iostream>
#include <deque>
#define MAX 5000000

using namespace std;

deque<int> v, poz;
int main()
{
    int n, k, i, a, suma = 0;

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

    fin >> n >> k;

    for(i = 1; i <= k; i++)
    {
        fin >> a;

        while(!v.empty() && v.back() >= a)
        {
            v.pop_back();
            poz.pop_back();
        }

        v.push_back(a);
        poz.push_back(i);
    }

    suma += v.front();

    for(i = k + 1; i <= n; i++)
    {
        fin >> a;

        if(poz.front() == i - k)
        {
            v.pop_front();
            poz.pop_front();
        }

        while(!v.empty() && v.back() >= a)
        {
            v.pop_back();
            poz.pop_back();
        }

        v.push_back(a);
        poz.push_back(i);

        suma += v.front();
    }

    fout << suma;

    fin.close();
    fout.close();

    return 0;
}