Cod sursa(job #6288)

Utilizator vanila0406Ionescu Victor vanila0406 Data 18 ianuarie 2007 18:05:59
Problema Secventa Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.3 kb
program secventa;
var f,g:text;
        a,v:array[1..500007] of longint;
        n,k:longint;





procedure iofile;
var i,st,dr,pin,max:longint;
begin
        assign(f,'secventa.in');
        reset(f);
        assign(g,'secventa.out');
        rewrite(g);
        readln(f,n,k);
        for i:=1 to k-1 do
                begin
                        read(f,a[i]);
                end;
                st:=1;
     dr:=1;
     v[1]:=1;
     for i:=2 to k-1 do
        begin
                while (a[i]<=a[v[dr]])and(st<=dr) do
                        dec(dr);
                inc(dr);
                v[dr]:=i;
        end;
     max:=-maxlongint;
     pin:=0;
     for i:=k to n do
      begin
        read(f,a[i]);
        while (a[i]<=a[v[dr]])and(st<=dr) do
                dec(dr);
        inc(dr);
        v[dr]:=i;
        while (v[st]<i-k+1)and(st<dr) do
                inc(st);
        if v[st]>=i-k+1 then
           if a[v[st]]>max then
                begin
                        max:=a[v[st]];
                        pin:=i-k+1;
                end;
      end;
     writeln(g,pin,' ',pin+k-1,' ',max);
     close(g);
        close(f);
end;



{procedure prel;
var st,dr,i,max,pin:longint;
begin



end;}


begin
        iofile;
        {prel;}
end.