MINK - Huyền thoại Lục Vân Tiên
Tác giả: ll931110
Ngôn ngữ: Pascal
Program MINK;
Const
input = '';
output = '';
maxn = 20000;
Var
a,stack: array[0..maxn] of longint;
n,t,k,i: longint;
front,rear: longint;
fi,fo: text;
Procedure init;
Var
i: integer;
Begin
Readln(fi, n, k);
For i:= 1 to n do read(fi, a[i]);
a[0]:= -1;
End;
Procedure solve;
Var
front,rear,i: integer;
Begin
front:= 1; rear:= 1;
stack[0]:= 0; stack[1]:= 1;
For i:= 2 to k - 1 do
Begin
While (a[i] <= a[stack[rear]]) and (rear >= front) do dec(rear);
inc(rear);
stack[rear]:= i;
End;
For i:= k to n do
Begin
If stack[front] + k <= i then inc(front);
While (a[i] <= a[stack[rear]]) and (rear >= front) do dec(rear);
inc(rear);
stack[rear]:= i;
Write(fo, a[stack[front]], ' ');
End;
Writeln(fo);
End;
Begin
Assign(fi, input);
Reset(fi);
Assign(fo, output);
Rewrite(fo);
Readln(fi, t);
For i:= 1 to t do
Begin
init;
solve;
End;
Close(fo);
Close(fi);
End.