Cod sursa(job #2092145)

Utilizator GiihuoTihufiNeacsu Stefan GiihuoTihufi Data 21 decembrie 2017 09:55:28
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>
#include <deque>
#include <vector>

using namespace std;

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

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

int main()
{
    long N,K,A;
    long BMax=0,Bi=500000,Bj=500000;
    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);
                        }
                    }
        if(i>=K-1 && !Deque.empty())
        {
            if(V[Deque.front()]>BMax)
            {
                Bi=Deque[0];
                Bj=Bi+K-1;
                BMax=V[Deque.front()];
            }
        }
    }
    g<<Bi+1<<" "<<Bj+1<<" "<<BMax;
    return 0;
}