Cod sursa(job #2026798)

Utilizator Marius7122FMI Ciltea Marian Marius7122 Data 25 septembrie 2017 00:46:28
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

//FILE *f1 = fopen("secventa.in","r");
//FILE *f2 = fopen("secventa.out","w");

std::ifstream f1("secventa.in");
std::ofstream f2("secventa.out");

const int N = 500005;

int n,k,i,prim,ultim,sol,solPrim,solUltim;
int v[N], d[N];

int main()
{
    //fscanf(f1,"%d%d",&n,&k);
    f1>>n>>k;

    sol = v[0] = -30001;
    for(i=1;i<=n;i++)
    {
        //fscanf(f1,"%d",&v[i]);
        f1>>v[i];

        if(i - d[prim] >= k)
            prim++;

        while(prim <= ultim && v[i] < v[d[ultim]])
            ultim--;
        d[++ultim] = i;

        if(i >= k && v[d[prim]] > sol)
        {
            sol = v[d[prim]];
            solPrim = i-k+1;
            solUltim = i;
        }
    }

    //fprintf(f2,"%d %d %d",solPrim, solUltim, sol);
    f2<<solPrim<<' '<<solUltim<<' '<<sol;

    return 0;
}