FWATER - Tưới nước đồng cỏ
Tác giả: RR
Ngôn ngữ: Pascal
{$R+,Q+}
uses math;
const
FINP='';
FOUT='';
MAXN=300;
var
n:longint;
kq:int64;
fin,d:array[1..MAXN] of longint;
c:array[1..MAXN,1..MAXN] of longint;
procedure inp;
var
f:text;
i,j:longint;
begin
assign(f,FINP); reset(f);
read(f,n);
for i:=1 to n do read(f,d[i]);
for i:=1 to n do
for j:=1 to n do
read(f,c[i,j]);
close(f);
end;
procedure ans;
var
f:text;
begin
assign(f,FOUT); rewrite(f);
writeln(f,kq);
close(f);
end;
procedure solve;
var
i,u,v,k:longint;
begin
kq:=0;
for k:=1 to n do
begin
u:=0;
for i:=1 to n do
if fin[i]=0 then
if (u=0) or (d[i]<d[u]) then u:=i;
fin[u]:=1; kq:=kq+d[u];
for v:=1 to n do
if fin[v]=0 then
d[v]:=min(d[v],c[u,v]);
end;
end;
begin
inp;
solve;
ans;
end.