Cod sursa(job #5126)

Utilizator Adrian001Vladulescu Adrian Adrian001 Data 10 ianuarie 2007 19:14:29
Problema Secventa Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.73 kb
Program cel;
Type vector=array[1..500000] of longint;
var f,g:text;
    a,q:vector;
    n,k,st,i,dr,rez,poz:longint;
Begin
Assign(f,'secventa.in');Reset(f);
Assign(g,'secventa.out');Rewrite(g);
Readln(f,n,k);
For i:=1 to n do Read(f,a[i]);
rez:=-40000;
st:=1;
dr:=0;
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;
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;
Write(g,poz-k+1,' ',poz,' ',rez);
Close(f);
Close(g);
end.