Cod sursa(job #2210069)

Utilizator testsursaSurseTest testsursa Data 5 iunie 2018 16:12:46
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <deque>

using namespace std;
ifstream cin("secventa.in");
ofstream cout("secventa.out");

deque<int> que;
int v[500005],n,i,k,sol=-30001,poss=500001,posd=500001;
int main()
{
    cin>>n>>k;
    for(i=1;i<=n;i++)
        cin>>v[i];
    for(i=1;i<=n;i++)
    {
        while(!que.empty() && i-que.front()+1>=k)
            que.pop_front();

        while(!que.empty() && v[i]<v[que.back()])
            que.pop_back();

        que.push_back(i);

        if(sol<v[que.front()])
        {
            sol=v[que.front()];
            poss=que.front();
            posd=i;
        }
        else if(sol==v[que.front()])
        {
            if(poss>que.front())
            {
                poss=que.front();
                posd=i;
            }
            else if(poss==que.front())
            {
                if(posd<i)
                    posd=i;
            }
        }
    }
    cout<<poss<<" "<<posd<<" "<<sol;

    return 0;
}