Pagini recente » Cod sursa (job #2491600) | Cod sursa (job #1410327) | Borderou de evaluare (job #610475) | Cod sursa (job #1417674) | Cod sursa (job #190203)
Cod sursa(job #190203)
program flip;
var f:text;
n,m,i,j,max,k:integer;
dat:array[1..16,1..16] of longint;
gata:boolean;
procedure flipc(x:integer);
var i:integer;
begin
for i:=1 to n do
dat[i,x]:=-dat[i,x];
end;
procedure flipl(x:integer);
var i:integer;
begin
for i:=1 to m do
dat[x,i]:=-dat[x,i];
end;
function sumac(x:integer):integer;
var s,i:integer;
begin
s:=0;
for i:=1 to n do
s:=s+dat[i,x];
sumac:=s;
end;
function sumal(x:integer):integer;
var s,i:integer;
begin
s:=0;
for i:=1 to m do
s:=s+dat[x,i];
sumal:=s;
end;
procedure back(p:integer);
begin
for i:=p to n do
if sumal(i)<0 then
begin
flipl(i);
k:=0;
for j:=1 to m do
begin
if sumac(j)<0 then
flipc(j);
k:=k+sumac(j);
end;
if k>max then
max:=k;
end;
if p<n then
back(p+1);
end;
begin
assign(f,'flip.in');
reset(f);
read(f,n);
readln(f,m);
for i:=1 to n do
begin
for j:=1 to m do
read(f,dat[i,j]);
readln(f);
end;
close(f);
max:=0;
for i:=1 to n do
max:=max+sumal(i);
back(1);
assign(f,'flip.out');
rewrite(f);
writeln(f,max);
close(f);
end.