Cod sursa(job #208157)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 14 septembrie 2008 14:32:41
Problema Secventa Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.79 kb
var v,s:array[1..500010]of longint;
    n,min,i,k,o,l,p,max,a,b,c:longint;
    f:text;
begin
   assign(f,'secventa.in');
   reset(f);
   readln(f,n,l);
   for i:=1 to n do
   read(f,v[i]);
   close(f);
   p:=1;
   s[1]:=1;
   k:=1;
   min:=-42000;
   for i:=1 to l-1 do
   begin
   while(v[s[k]]>=v[i])and(k>=p)do
   k:=k-1;
   k:=k+1;
   s[k]:=i;
   end;
   for i:=l to n do
   begin
   if s[p]<i-l+1 then p:=p+1;
   while(v[s[k]]>=v[i])and(k>=p)do
   k:=k-1;
   k:=k+1;
   s[k]:=i;
   if v[s[p]]>min then begin a:=i-l+1;
                             b:=i;
                             c:=v[s[p]];
                             min:=v[s[p]];
                       end;
   end;
   assign(f,'secventa.out');
   rewrite(f);
   writeln(f,a,' ',b,' ',c);
   close(f);
end.