Cod sursa(job #624279)

Utilizator CS-meStanca Marian Ciprian CS-me Data 22 octombrie 2011 10:02:23
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
FILE *fin=fopen("secventa.in","r");
FILE *fout=fopen("secventa.out","w");

int i,n,k,d[500000],max,poz,p,u,v[500000];

int main(){

    fscanf(fin,"%d %d %d",&n,&k,&v[1]);

    p=1;
    u=1;
    d[1]=1;
    max=-30010;

    for(i=2;i<=n;i++){
        fscanf(fin,"%d",&v[i]);

        while(p<=u && v[d[u]]>=v[i]){
            u--;
        }
        d[++u]=i;

        if(i-d[p]==k){
            p++;
        }
        if(i>=k){
            if(v[d[p]]>max){
                max=v[d[p]];
                poz=d[u];
            }
        }
    }

    fprintf(fout,"%d %d %d",poz-k+1,poz,max);


return 0;
}