Cod sursa(job #2158451)

Utilizator MoleRatFuia Mihai MoleRat Data 10 martie 2018 13:02:54
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,k;
int A[500010];
int B[500010];
int main()
{
    fin>>n>>k;
    for (int i=1;i<=n;i++)
        fin>>A[i];
    int pr=0,ul=0,maxi=0,in,sf;
    for (int i=1;i<=n;i++)
    {
        if (B[pr]==i-k)
            pr++;
        while ((pr<=ul) && (A[B[ul]]>=A[i]))
            ul--;
        ul++;
        B[ul]=i;
        if ((maxi<A[B[pr]])&&(i>=k))
        {
            in=i-k+1;
            sf=i;
            maxi=A[B[pr]];
        }
    }
    fout<<in<<' '<<sf<<' '<<maxi;
    return 0;
}