pku1125 Stockbroker Grapevine
求一个图中到其他点的最短路的最大值最小的点和这个值。
floyd一遍完事
View Code
1 program pku1125(input,output); 2 var 3 f:array[0..300,0..300] of longint; 4 n:longint; 5 procedure init; 6 var 7 i,j,s,x,y:longint; 8 begin 9 fillchar(f,sizeof(f),30); 10 for i:=1 to n do 11 begin 12 read(s); 13 for j:=1 to s do 14 begin 15 read(x,y); 16 f[i,x]:=y; 17 end; 18 readln; 19 end; 20 for i:=1 to n do 21 f[i,i]:=0; 22 end;{ init } 23 procedure main; 24 var 25 i,j,k:longint; 26 answer,max,people:longint; 27 begin 28 for k:=1 to n do 29 for i:=1 to n do 30 for j:=1 to n do 31 if f[i,k]+f[k,j]<f[i,j] then 32 f[i,j]:=f[i,k]+f[k,j]; 33 answer:=19950714; 34 for i:=1 to n do 35 begin 36 max:=0; 37 for j:=1 to n do 38 if (i<>j)and(f[i,j]>max) then 39 max:=f[i,j]; 40 if max<answer then 41 begin 42 answer:=max; 43 people:=i; 44 end; 45 end; 46 writeln(people,' ',answer); 47 end;{ main } 48 begin 49 readln(n); 50 while n<>0 do 51 begin 52 init; 53 main; 54 readln(n); 55 end; 56 end.