Cod sursa(job #2238821)

Utilizator tigeraOprea Tereza Emilia tigera Data 7 septembrie 2018 19:42:40
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <deque>

using namespace std;

deque <pair <int, int> > v;
int a[5000010], n, k, s;


int main() {

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

    cin >> n >> k;
    for (int i=1; i<=n; i++)
        cin >> a[i];
    for (int i=1; i<=k; i++)
    {
        while (v.size() > 0 && v.back().first > a[i] )
            v.pop_back();
        v.push_back(make_pair( a[i], i) );
    }
    s += v.front().first;

    for (int i=k+1; i<=n; i++)
    {
        if (v.front().second == i-k)
            v.pop_front();
        while (v.size() > 0 && v.back().first > a[i] )
            v.pop_back();
        v.push_back(make_pair( a[i], i) );
        s += v.front().first;
    }

    cout << s;

    return 0;
}