Cod sursa(job #2026796)

Utilizator Marius7122FMI Ciltea Marian Marius7122 Data 25 septembrie 2017 00:42:07
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>

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

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);

    sol = v[0] = -30001;
    for(i=1;i<=n;i++)
    {
        fscanf(f1,"%d",&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 = d[prim];
            solUltim = d[ultim];
        }
    }

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

    return 0;
}