Cod sursa(job #975340)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 19 iulie 2013 20:47:50
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <deque>

using namespace std;

long long int v[5000005];

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

    int n,i;
    int k;
    int sum=0;

    fin>>n>>k;

    deque<int> coada;

    for(i=0;i<n;i++)
        fin>>v[i];

    for(i=0;i<n;i++)
    {
        while(!coada.empty())
            if((coada.front()+k)<=i)
                coada.pop_front();
            else
                break;

        while(!coada.empty())
            if(v[coada.back()]>=v[i])
                coada.pop_back();
            else
                break;

            coada.push_back(i);

        if((i+1)>=k)
            sum+=v[coada.front()];
    }
    fout<<sum<<'\n';

    fin.close();
    fout.close();
    return 0;
}