Cod sursa(job #1311834)

Utilizator Vele_GeorgeVele George Vele_George Data 8 ianuarie 2015 17:14:51
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <deque>
#include <fstream>

using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");

deque<int> DQ,P;

void add(int x, int poz)
{
    while(!DQ.empty() && x<DQ.back())
    {
        DQ.pop_back();
        P.pop_back();
    }
    DQ.push_back(x);
    P.push_back(poz);
}

long long n,k,sum,x;
int main()
{
    f>>n>>k;
    for(int i=1; i<=k; i++)
    {
        f>>x;
        add(x,i);
    }
    //cerr << DQ.front() << " ";
    sum+=DQ.front();
    for(int i=k+1; i<=n; i++)
    {
        f>>x;
        if (P.front()<=i-k)
        {
            DQ.pop_front();
            P.pop_front();
        }
        add(x,i);
        sum+=DQ.front();
    }
    g<<sum;
    return 0;
}