Cod sursa(job #238506)

Utilizator MihaiBunBunget Mihai MihaiBun Data 2 ianuarie 2009 13:57:36
Problema Secventa Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.75 kb
program deq;
var f:text;
    a,c:array[0..500000] of longint;
    i,n,k,li,ls,max,poz:longint;
begin
  assign(f,'secventa.in');
  reset(f);
  readln(f,n,k);
  for i:=1 to n do read(f,a[i]);
  close(f);
  li:=1;
  ls:=0;
  max:=-30001;
  for i:=1 to k-1 do
  begin
    while (li<=ls) and (a[i]<=a[c[ls]]) do ls:=ls-1;
    ls:=ls+1;
    c[ls]:=i;
    end;
  for i:=k to n do
  begin
    while (li<=ls) and (a[i]<=a[c[ls]]) do ls:=ls-1;
    ls:=ls+1;
    c[ls]:=i;
    if c[li]=i-k then li:=li+1;
    if a[c[li]]>max then begin
                           max:=a[c[li]];
                           poz:=c[li]
                         end;
  end;
  assign(f,'secventa.out');
  rewrite(f);
  write(f,poz,' ',poz+k-1,' ',max);
  close(f)
end.