📄 hospital.pas
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -