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.

Download