Cod sursa(job #2210057)

Utilizator testsursaSurseTest testsursa Data 5 iunie 2018 15:57:30
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;
ifstream cin("secventa.in");
ofstream cout("secventa.out");
int v[500005],n,i,que[2*500005],k,sol,poss,posd;
int main()
{
    cin>>n>>k;
    for(i=1;i<=n;i++)
        cin>>v[i];
    int st=500001,dr=500000;
    for(i=1;i<=n;i++)
    {
        if(st<=dr&& i-que[st]>=k)
            st++;
        while(st<=dr&&v[i]<v[que[dr]])
            dr--;
        que[++dr]=i;
        if(sol<v[que[st]])
        {
            sol=v[que[st]];
            poss=que[st];
            posd=i;
        }
        else if(sol==v[que[st]])
        {
            if(poss>que[st])
            {
                poss=que[st];
                posd=i;
            }
            else if(poss==que[st])
            {
                if(posd<i)
                    posd=i;
            }
        }
    }
    cout<<poss<<" "<<posd<<" "<<sol;

    return 0;
}