Cod sursa(job #285588)
var a,b:array[1..16,1..16] of -1000000..1000000;
n,m,i,j:1..16;
ok:boolean;
f,g:text;
s1,ss,s2:longint;
begin
assign(f,'flip.in');
reset(f);
assign(g,'flip.out');
rewrite(g);
read(f,n,m);
for i:=1 to n do
for j:=1 to m do
begin
read(f,a[i,j]);
b[i,j]:=a[i,j];
end;
repeat
ok:=true;
for j:=1 to m do
begin
ss:=0;
for i:=1 to n do
ss:=ss+a[i,j];
if ss<0 then
begin
ok:=false;
for i:=1 to n do a[i,j]:=a[i,j]*(-1);
end;
end;
for i:=1 to n do
begin
ss:=0;
for j:=1 to m do
ss:=ss+a[i,j];
if ss<0 then
begin
for j:=1 to m do a[i,j]:=a[i,j]*(-1);
ok:=false;
end;
end;
until ok;
for i:=1 to n do
for j:=1 to m do
s1:=s1+a[i,j];
repeat
ok:=true;
for i:=1 to n do
begin
ss:=0;
for j:=1 to m do
ss:=ss+b[i,j];
if ss<0 then
begin
for j:=1 to m do b[i,j]:=b[i,j]*(-1);
ok:=false;
end;
end;
for j:=1 to m do
begin
ss:=0;
for i:=1 to n do
ss:=ss+b[i,j];
if ss<0 then
begin
ok:=false;
for i:=1 to n do b[i,j]:=b[i,j]*(-1);
end;
end;
until ok;
for i:=1 to n do
for j:=1 to m do
s2:=s2+b[i,j];
write(g,(s1+s2) div 2);
close(f);
close(g);
end.