MINK - Huyền thoại Lục Vân Tiên

Tác giả: RR

Ngôn ngữ: Pascal

uses math;
var
  a,l,r:array[1..50111] of longint;
  nn,test,i,n,k:longint;
begin
  read(test);
  for test:=1 to test do
    begin
      read(n,k); nn:=n;
      for i:=1 to n do
        read(a[i]);

      while (n mod k<>0) do
        begin
          inc(n);
          a[n]:=maxlongint;
        end;

      for i:=1 to n do
        if i mod k=1 then l[i]:=a[i]
        else l[i]:=min(l[i-1],a[i]);

      for i:=n downto 1 do
        if i mod k=0 then r[i]:=a[i]
        else r[i]:=min(r[i+1],a[i]);

      for i:=1 to nn-k+1 do
        write(min(r[i],l[i+k-1]),' ');
      writeln;
    end;
end.

Download