Cod sursa(job #1963031)

Utilizator NicuBaciuNicu Baciu NicuBaciu Data 12 aprilie 2017 11:26:16
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <deque>

using namespace std;

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

int n, k;

int a[5000001];

deque <int> dq;

int solve(int n, int k)
{
    long long sum=0;

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

        dq.push_back(i);

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

        if(i>=k)
            sum+=a[dq.front()];
    }

    return sum;
}

int main()
{

    fin >> n >> k;

    for(int i=1; i<=n; i++)
        fin >> a[i];

    fout << solve(n, k);

    return 0;
}