Cod sursa(job #2888038)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 10 aprilie 2022 16:52:33
Problema Secventa Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
//Ilie Dmitru
#include<fstream>
typedef long long int ll;
const int NMAX=500005;
const ll MOD=194767;

std::ifstream f("secventa.in");
std::ofstream g("secventa.out");
int baza[NMAX], index[NMAX], start=0, end=-1;

int main()
{
    int N, K, i, x, maxB=-30005, pos;
    f>>N>>K;
    for(i=0;i<K;++i)
    {
        f>>x;
        while(end>start && baza[end]>=x)
            --end;
        baza[++end]=x;
        index[end]=i;
    }
    pos=K-1;
    for(;i<N;++i)
    {
        f>>x;
        while(end>start && baza[end]>=x)
            --end;
        baza[++end]=x;
        index[end]=i;
        start+=(index[start]==i-K);
        if(baza[start]>maxB)
            maxB=baza[start], pos=i;
    }
    g<<pos-K+2<<' '<<pos+1<<' '<<maxB;
    f.close();
    g.close();
    return 0;
}