Cod sursa(job #2508868)

Utilizator daniel.vbVasile Daniel daniel.vb Data 13 decembrie 2019 11:13:48
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>


int a[500001],x[500001];


int main()
{
    int bm,jm,km,i,p,u,n,k,aux;

    FILE *f,*g;

    f=fopen("secventa.in","r");
    g=fopen("secventa.out","w");

    fscanf(f,"%d%d",&n,&k);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",x+i);

    bm=-30001;
    p=1;u=0;

    for(i=1;i<k;i++)
    {
        while(u>=p && x[i]<x[a[u]])
            u--;
        u++;a[u]=i;
    }

    for(i=k;i<=n;i++)
    {
        fscanf(f,"%d",&x);

        while(u>=p && x[i]<x[a[u]])
            u--;
        u++;a[u]=i;

        aux=x[a[u]];
        if(aux>bm)
        {
            bm=aux; jm=i-k+1;km=i;
        }
        if(i-a[u]+1==k)
            p++;
    }

    fprintf(g,"%d %d %d",jm,km,bm);
    fclose(g);
}