求最小生成树中最长的一段

program poj2485;
var
  a:array[1..500,1..500] of longint;
  d,closed:array[1..500] of longint;
  flag:array[1..500] of boolean;
  p,q,ans,n:longint;
procedure init;
var
  i,j:integer;
begin
  fillchar(a,sizeof(a),0);
  readln;
  readln(n);
  for i:=1 to n do
  begin
    for j:=1 to n do
      read(a[i,j]);
    readln;
  end;
end;
procedure prim;
var
  i,j,k,min:longint;
begin
  fillchar(flag,sizeof(flag),true);
  flag[1]:=false;
  for i:=1 to n do
  begin
    d[i]:=a[1,i];
    closed[i]:=1;
  end;
  for i:=1 to n-1 do
  begin
    min:=maxlongint;
    for j:=1 to n do
      if (d[j]<min) and flag[j] then
      begin
        min:=d[j];
        k:=j;
      end;
    flag[k]:=false;
    for j:=1 to n do
      if (a[j,k]<d[j]) and flag[j] then
      begin
        d[j]:=a[j,k];
        closed[j]:=k;
      end;
  end;
  ans:=-maxlongint;
  for i:=2 to n do
    if ans<a[i,closed[i]] then ans:=a[i,closed[i]];
  writeln(ans);
end;
begin
  readln(p);
  for q:=1 to p do
  begin
    init;
    prim;
  end;
end.