Cod sursa(job #206098)

Utilizator vladnVlad Nistorica vladn Data 4 septembrie 2008 18:05:15
Problema Secventa Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.95 kb
var f,g:text;
    n,k,i,rez,st,dr,poz,j:longint;
    er:integer;
    s,x:string;
    a,q:array[1..500000] of longint;
begin
assign(f,'secventa.in');reset(f);
assign(g,'secventa.out');rewrite(g);
readln(f,n,k);j:=0;
while not eof(f) do begin
      read(f,s);
      x:='';
      for i:=1 to length(s) do
          if s[i]<>' ' then
             x:=x+s[i]
          else begin
              inc(j);
              val(x,a[j],er);
              x:='';
          end;
      if x<>'' then val(x,a[j+1],er);
end;
rez:=maxlongint*-1;
st:=1;
dr:=0;
for i:=1 to k-1do 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.