Cod sursa(job #2121696)

Utilizator GiihuoTihufiNeacsu Stefan GiihuoTihufi Data 4 februarie 2018 10:27:07
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <fstream>
#include <deque>
#include <vector>
#include <iostream>

using namespace std;

ifstream f("secventa.in");
ofstream g("secventa.out");

deque<long> Deque;
vector<long> V;

void WriteDeque()
{
    deque<long> D2=Deque;
    while(!D2.empty())
    {
        cout<<V[D2.front()]<<" ";
        D2.pop_front();
    }
    cout<<endl;
}

int main()
{
    long N,K,A;
    long Max=-30001;
    f>>N>>K;

    for(long i=0;i<N;i++)
    {
        f>>A;
        V.push_back(A);

        if(!Deque.empty() && Deque.front()<=i-K)
            Deque.pop_front();

        if (Deque.empty()) Deque.push_back(i);
                    else
                    {
                        if(V[Deque.back()]<A) Deque.push_back(i);
                        else
                        {
                            while(!Deque.empty() && V[Deque.back()]>=A) Deque.pop_back();
                            Deque.push_back(i);
                        }
                    }
       // WriteDeque();
        if(i>K && !Deque.empty())
        {
            Max=max(Max,V[Deque.front()]);
        }
    }
    g<<Max;
    return 0;
}