Cod sursa(job #169787)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 1 aprilie 2008 22:48:08
Problema Secventa Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.17 kb
var a,b:array [1..50000] of integer;
s:array[1..750000] of shortstring;
x:string;
n,k,i,j,st,dr,max,p,u,t,l,z:longint;
f,g:text;
begin
assign(f,'secventa.in');reset(f);
assign(g,'secventa.out');rewrite(g);
readln(f,n,k);
readln(f,s);
i:=1;
t:=0;
x:=s;
l:=length(s);
while i<=l do begin
      z:=1;
      inc(t);
      if s[i]='-' then begin
                       z:=-1;
                       inc(i);
                        end;
       while (s[i]<>' ') and (i<=l) do begin
             a[t]:=a[t]*10+ord(s[i])-48;
             inc(i);
                                      end;
a[t]:=a[t]*z;
inc(i);
     end;
     st:=2;
     dr:=1;
     b[1]:=-31000;
     max:=-maxlongint;
     for i:=1 to n do begin
          if (i>k) and (b[st]=a[i-k]) then inc(st);
          inc(dr);
          b[dr]:=a[i];
          for j:=dr-1 downto st-1 do begin
               if not (b[j]>a[i]) then break;
          end;
          dr:=j+1;
          b[dr]:=a[i];
          if (i>=k) and (b[st]>max) then begin
               p:=i-k+1;
               u:=i;
               max:=b[st];
          end;
     end;
     write(g,p,' ',u,' ',max);
close(f);
close(g);
end.