Cod sursa(job #2472137)

Utilizator pregoliStana Andrei pregoli Data 12 octombrie 2019 09:22:33
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
#define ll long long
#define uns unsigned
#define newline '\n'
using namespace std;
///******************
ifstream fin("deque.in");
ofstream fout("deque.out");

const uns NMAX(5000010);
int n, k, sum;
int v[NMAX];
deque < pair <int, int > > dq;//pozitii

int main()
{
    fin >> n >> k;
    for (int i = 1; i <= n; i++)
        fin >> v[i];

    for (int i = 1; i <= n; i++)
    {
        while (!dq.empty() && v[i] <= dq.back().first)
            dq.pop_back();

        dq.push_back(make_pair(v[i], i));

        if (dq.front().second == i - k)
            dq.pop_front();

        if (i >= k)
            sum += dq.front().first;
    }

    fout << sum;
    return EXIT_SUCCESS;
}