Cod sursa(job #245045)

Utilizator ConsstantinTabacu Raul Consstantin Data 16 ianuarie 2009 17:04:38
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
int x[50011],v[500011],k,n,i,p,q,m,a,b,max=-50000,st;
int main(){
FILE *f=fopen("secventa.in","r");
fscanf (f,"%d %d",&n,&k);
v[1]=1;
for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
fclose(f);

x[1]=1;
p=1;q=1;
for(i=2;i<=n;i++)
        {while(x[p]<i-k+1)
        p++;

        while(v[i]<v[x[q]]  &&  p<=q)

                q--;
        q++;
        x[q]=i;
        if(v[x[p]]>max)
                {max=v[x[p]];
                st=x[p];
                }
       }
FILE *g=fopen("secventa.out","w");
fprintf(g,"%d %d %d",st,st+k-1,max);
fclose(g);
return 0;}