Pagini recente » Cod sursa (job #1004155) | Cod sursa (job #291632) | Cod sursa (job #1874975) | Cod sursa (job #2770930) | Cod sursa (job #535071)
Cod sursa(job #535071)
type matrice=array[1..16,1..16] of longint;
vector=array[1..256] of longint;
var a:matrice;
l,c:vector;
m,n:integer;
procedure citire(var a:matrice; var n,m:integer);
var i,j:integer;
begin
assign(input,'flip.in');reset(input);
readln(n,m);
for i:=1 to n do
for j:=1 to m do begin
read(a[i,j]);
l[i]:=l[i]+a[i,j];
c[j]:=c[j]+a[i,j];
end;
close(input);
end;
procedure schimbl(i:integer);
var j:integer;
begin
for j:=1 to m do begin
a[i,j]:=-a[i,j];
c[j]:=c[j]+2*a[i,j];
end;
end;
procedure schimbc(j:integer);
var i:integer;
begin
for i:=1 to n do begin
a[i,j]:=-a[i,j];
l[i]:=l[i]+2*a[i,j];
end;
end;
var i,j:integer;
ok:boolean;
procedure scrie;
var x,i:integer;
s:longint;
begin
assign(output,'flip.out');rewrite(output);
s:=0;
if n<m then begin
for i:=1 to n do
s:=s+l[i]
end else
for i:=1 to m do
s:=s+c[i];
write(s);
close(output);
end;
begin
citire(a,n,m);
repeat
ok:=true;
for i:=1 to n do
if l[i]<0 then begin
l[i]:=-l[i];
schimbl(i);
ok:=false;
end;
for i:=1 to m do
if c[i]<0 then begin
c[i]:=-c[i];
schimbc(i);
ok:=false;
end;
until ok;
scrie;
end.