Đề bài: http://vn.spoj.com/problems/VMRESTO/
Thuật toán:
- Thuật toán bài này khá đơn giản. Bạn có thể đọc code của mình bên dưới, mình viết code cũng khá dễ đọc.
Code:
const fi='';
fo='';
maxn=100;
var hang,cot:array[1..maxn] of int64;
cheo,n,i,j,k:longint;
a:array[1..maxn,1..maxn] of int64;
res,hold:int64;
procedure nhap;
begin
assign(input,fi);reset(input);
readln(n);
for i:=1 to n do
for j:=1 to n do read(a[i,j]);
close(input);
end;
procedure init;
begin
for i:=1 to n do
for j:=1 to n do
begin
inc(hang[i],a[i,j]);
inc(cot[j],a[i,j]);
end;
end;
procedure xuly;
begin
hold:=0;
for i:=2 to n do
begin
a[i,i]:=hang[1]-hang[i];
inc(hold,a[i,i]);
end;
end;
procedure inkq;
begin
assign(output,fo);rewrite(Output);
res:=(hang[1]-hold) div (n-1);
for i:=1 to n do
begin
for j:=1 to n do
if i<>j then write(a[i,j],' ') else write(res+a[i,j],' ');
writeln;
end;
close(output);
end;
begin
nhap;
init;
xuly;
inkq;
end.
Speak Your Mind