var ans,n,min,i,j,q,p,x,y:longint; a:array[0..101,0..101] of longint; d,f:array[0..101] of longint; v:array[0..101] of boolean; procedure prim; var i,j:longint; begin for i:=1 to n do d[i]:=maxlongint; d[1]:=0; for i:=1 to n do f[i]:=1; for i:=1 to n do begin min:=maxlongint; for j:=1 to n do if (v[j]=false) and (d[j]<min) then begin min:=d[j]; q:=j; end; ans:=ans+a[q,f[q]]; v[q]:=true; for j:=1 to n do if (q<>j) and (v[j]=false) and (a[q,j]>=0) and (a[q,j]<d[j]) then begin d[j]:=a[q,j]; f[j]:=q; end; end; end; begin readln(n); for i:=1 to n do for j:=1 to n do read(a[i,j]); readln(p); for i:=1 to p do begin read(x,y); a[x,y]:=0; a[y,x]:=0; end; prim; write(ans); end. AC /************************************************************** Problem: 2070 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/