Cod sursa(job #1490856)

Utilizator metrix007Lungu Ioan Adrian metrix007 Data 24 septembrie 2015 11:49:40
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <deque>
#
#define NMAX 5000001

using namespace std;

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

int a[NMAX],n,k,s;
deque<int> dcoada;

int main()
{
    in >> n >> k;
    for(int i=1;i<=n;i++)
    {
        in >> a[i];
    }

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

        dcoada.push_back(i);

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

        if(i-k>=0){
            s=s+ a[dcoada.front()];
            //cout << a[dcoada.front()] << " " << dcoada.front() << endl;
        }
    }
    out << s;
    return 0;
}