Pagini recente » Cod sursa (job #1232) | Cod sursa (job #3213883) | Cod sursa (job #3282641) | Cod sursa (job #3150825) | Cod sursa (job #589350)
Cod sursa(job #589350)
Program filip;
var a,b,r : array[1..1000,1..1000] of integer;
n,m,t,l,sm : integer;
c : array[1..1000] of integer;
Procedure itire;
var fin : text;
i,j : integer;
begin
assign(fin,'flip.in');
reset(fin);
readln(fin,n,m);
for i:=1 to n do
for j:=1 to m do
read(fin,a[i,j]);
close(fin);
end;
Function sumat : longint;
var i,j : integer;
begin
sumat:=0;
for i:=1 to n do
for j:=1 to m do
sumat:=sumat+b[i,j];
end;
Procedure incr;
var i : integer;
begin
t:=1;
for i:=n downto 1 do
begin
c[i]:=c[i]+t; if c[i]=2 then begin c[i]:=0; t:=1; end else t:=0;
end;
end;
Procedure calc;
var sc1,i,j,l : longint;
begin
sm:=-MaxInt;
repeat
b:=a;
sc1:=0;
for i:=1 to n do
if c[i]=1 then
for j:=1 to m do
b[i,j]:=-b[i,j];
for i:=1 to m do
begin
for j:=1 to n do
sc1:=sc1+b[j,i];
if sc1<0 then for l:=1 to n do b[l,i]:=-b[l,i];
sc1:=0;
end;
if sumat>sm then sm:=sumat;
incr;
until t=1;
end;
Procedure scrie;
var fout : text;
begin
assign(fout,'flip.out');
rewrite(fout);
writeln(fout,sm);
close(fout);
end;
begin
itire;
calc;
scrie;
end.