Cod sursa(job #2289355)

Utilizator StanCatalinStanCatalin StanCatalin Data 24 noiembrie 2018 14:10:14
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb

#include <iostream>

#include <fstream>



using namespace std;



ifstream in("secventa.in");

ofstream out("secventa.out");



int v[500005],dq[500005],n,k;



int main()

{

    int i;

    in >> n >> k;

    for (i=1; i<=n; i++)

    {

        in >> v[i];

    }

    int ok = 0,st=0,dr=-1,stmax,drmax,maxi = -30006;

    for (i=1; i<=n; i++)

    {

        if (st <= dr && dq[st] == i-k)

            st++;

        while (st <= dr && v[i] <= v[dq[dr]])

            dr--;

        dq[++dr] = i;

        if (i >= k)

        {

            if (maxi < v[dq[st]])

            {

                maxi = v[dq[st]];

                stmax = i-k+1;

                drmax = i;

            }

        }

    }

    out << stmax << " " << drmax << " " << maxi;

    return 0;

}