Cod sursa(job #208166)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 14 septembrie 2008 14:54:24
Problema Secventa Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.07 kb
var v,s,q:array[1..700010]of longint;
    n,m,i,k,l,p,max,a,b,c,r,o:longint;
    y:char;
    f:text;
begin
   assign(f,'secventa.in');
   reset(f);
   readln(f,n,l);
   i:=1;
   r:=1;
   o:=0;
   while not eoln(f)do
   begin
   read(f,y);
   if y='-' then r:=-1
            else
   if(ord(y)>32)then o:=o*10+ord(y)-48
                else begin v[i]:=o*r;
                           i:=i+1;
                           r:=1;
                           o:=0;
                     end;
   end;
   close(f);
   p:=1;
   s[1]:=1;
   k:=1;
   q[1]:=v[1];
   m:=-42000;
   for i:=2 to l-1 do
   begin
   while(q[k]>=v[i])and(k>=p)do
   k:=k-1;
   k:=k+1;
   s[k]:=i;
   q[k]:=v[i];
   end;
   for i:=l to n do
   begin
   if s[p]<i-l+1 then p:=p+1;
   while(q[k]>=v[i])and(k>=p)do
   k:=k-1;
   k:=k+1;
   s[k]:=i;
   q[k]:=v[i];
   if q[p]>m then begin a:=i-l+1;
                        b:=i;
                        m:=q[p];
                  end;
   end;
   assign(f,'secventa.out');
   rewrite(f);
   writeln(f,a,' ',b,' ',m);
   close(f);
end.