Cod sursa(job #985003)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 16 august 2013 03:19:07
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<cstdio>
int nmax,n,k,i,j,nr,p,u,in,fin,v[500001],d[500001];
FILE *f,*g;
int main(){
    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",&v[i]);
    }
    p=1;
    u=0;
    nmax=-30001;
    for(i=1;i<=n;i++){
        while(v[i]<v[d[u]] && u>=p){
            u--;
            }
        d[++u]=i;
        if(i>=k){
            if(i-d[p]==k)
                p++;
            if(v[d[p]]>nmax){
                nmax=v[d[p]];
                in=i-k+1;
                fin=i;
            }
        }
    }
    fprintf(g,"%d %d %d",in,fin,nmax);
    fclose(f);
    fclose(g);
    return 0;
}