Cod sursa(job #113607)

Utilizator vrvpVlad Veigang vrvp Data 10 decembrie 2007 21:39:07
Problema Secventa Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.61 kb
var n,k,i,st,dr,rez,poz:integer;
a,q:array[1..500000] of integer;
f,g:text;
begin
assign(f,'secventa.in');reset(f);
assign(g,'secventa.out');rewrite(g);
read(f,n,k);
for i:=1 to n do
  read(f,a[i]);
rez:=0;
st:=1;
dr:=0;
for i:=1 to k do begin
  while (dr>=st) 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;
writeln(g,poz-k+1,' ',poz,' ',rez);
close(g);
end.