Cod sursa(job #5144)

Utilizator Adrian001Vladulescu Adrian Adrian001 Data 10 ianuarie 2007 19:42:58
Problema Secventa Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.92 kb
Program cel;
Type vector=array[1..500000] of longint;
     vector1=array[1..500000] of integer;
var f,g:text;
    a:vector1;
    q:vector;
    n,k,st,i,dr,poz:longint;
    rez:integer;
Begin
Assign(f,'secventa.in');Reset(f);
Assign(g,'secventa.out');Rewrite(g);
Readln(f,n,k);
rez:=-32000;
st:=1;
dr:=0;
For i:=1 to n do
 Begin
Read(f,a[i]);
If i<=k+1 then For i:=1 to k-1 do
                 Begin
                  While (st<=dr) and (a[i]<=a[q[dr]]) do dr:=dr-1;
                  dr:=dr+1;
                  q[dr]:=i;
                 end
          else
For i:=k to n do
 Begin
  While (st<=dr) and (a[i]<=a[q[dr]]) do dr:=dr-1;
  dr:=dr+1;
  q[dr]:=i;
  While (st<=dr) and (q[st]<i-k+1) do st:=st+1;
  If a[q[st]]>rez then Begin
                        rez:=a[q[st]];
                        poz:=i;
                       end;
 end;
end;
Write(g,poz-k+1,' ',poz,' ',rez);
Close(f);
Close(g);
end.