Pagini recente » Cod sursa (job #1293237) | Cod sursa (job #1611268) | Cod sursa (job #236813) | Cod sursa (job #1259203) | Cod sursa (job #2093169)
Program Flip;
type tab=array[1..16,1..16] of -1000000..1000000;
mult=-1..1;
f = array[1..16] of mult;
var a:tab;
fl:f;
m,n,i,j:1..16;
s1,s2:longint;
function Solut(a:tab):longint;
var i,j:1..16;
s,sol:longint;
begin
sol:=0;
for j:=1 to m do begin
s:=0;
for i:=1 to n do begin
s:=s+fl[i]*a[i,j];
end;
sol:=sol+abs(s);
end;
solut:=sol;
end;
function backtrack(a:tab; k:byte; e:mult):longint;
var i:byte;
s,s1,s2:longint;
begin
s:=0;
if k<=n then begin
if k>0 then
for i:=1 to m do
s:= s + a[k,i]*e;
s1:=backtrack(a,k+1,-1);
s2:=backtrack(a,k+1,1);
if s1>s2 then fl[k+1]:=-1 else fl[k+1]:=1;
backtrack:=s;
end else backtrack:=0;
end;
begin
n:=1;m:=1;
readln(n,m);
for i:=1 to n do begin
for j:=1 to m do
read(a[i,j]);
readln;
end;
s1:=backtrack(a,0,1);
writeln(solut(a));
readln;
readln;
end.