Cod sursa(job #423571)

Utilizator Antika89noname Antika89 Data 24 martie 2010 00:14:18
Problema Secventa Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.22 kb
Program secventa;
type stack=array [1..100000] of integer;
var f:text;
    n,k,i:word;
    a,b,c:stack;
    o,max:integer;
function min(j,l:word;d:stack):integer;
var n:word;
begin
min:=d[1];
for n:=2 to l do
if d[n]<min
   then min:=a[n];
end;
procedure uj(j,l:word;var d:stack;p:stack);
var n:word;
begin
for n:=1 to l do
d[n]:=d[n+1];
d[l]:=p[j];
end;

begin
assign(f,'secventa.in');
reset(f);
read(f,n,k);

for i:=1 to n do
read(f,a[i]);

close(f);
assign(f,'secventa.out');
rewrite(f);

for i:=1 to k do
b[i]:=a[i];

max:=min(1,k,b);
c[1]:=1;
c[2]:=k;
c[3]:=max;


i:=k+1;

while (i<=n) do

 begin
   uj(i,k,b,a);
   o:=min(1,k,b);
   if o>max
      then
        begin
         max:=o;
         c[1]:=i-k+1;
         c[2]:=i;
         c[3]:=o;
        end
      else
       if (o=max) and (b[1]<c[1])
          then
            begin

            c[1]:=i-k+1;
         c[2]:=i;
         c[3]:=o;
            end
          else
          if (o=max) and (b[1]=b[1]) and (b[k]<c[k])
          then
          begin
          c[1]:=i-k+1;
         c[2]:=i;
         c[3]:=o;
         end;

   i:=i+1;
 end;

for i:=1 to k do
write(f,c[i],' ');
close(f);

end.