hospital.pas
来自「PASCAL光盘资料PASCAL光盘资料PASCAL光盘资料」· PAS 代码 · 共 47 行
PAS
47 行
program hospital(input, output);
var w : array [1..100] of longint;
g : array [1..100, 1..100] of longint;
n, i, j, k, l, r, min,s : longint;
begin
assign(input, 'hospital.in'); reset(input);
readln(n);
for i := 1 to n do
for j := 1 to n do
g[i][j] := 1000000;
for i := 1 to n do
begin
g[i][i] := 0;
readln(w[i], l, r);
if l > 0
then begin
g[i][l] := 1;
g[l][i] := 1
end;
if r > 0
then begin
g[i][r] := 1;
g[r][i] := 1
end
end;
for k := 1 to n do
for i := 1 to n do
if i <> k then
for j := 1 to n do
if (i <> j) and (k <> j) and (g[i][k] + g[k][j] < g[i][j])
then g[i][j] := g[i][k] + g[k][j];
min := maxlongint;
for i := 1 to n do
begin
s:=0;
for j := 1 to n do
inc(s, g[i][j] * w[j]);
if s < min then min := s
end;
writeln(min);
close(input)
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?