Pagini recente » Statistici Pet Rescue (PlayHP) | Cod sursa (job #1280936) | Cod sursa (job #2249883) | Cod sursa (job #602913) | Cod sursa (job #554059)
Cod sursa(job #554059)
program flip;
var m,n,i,j:byte;
f:text;
a:array[1..16,1..16] of longint;
smax:longint;
fol:array[1..16] of boolean;
function suma:longint;
var i,j:byte;
s:longint;
begin
s:=0;
for i:=1 to n do
for j:=1 to m do
s:=s+a[i,j];
suma := s;
end;
function suma_col(nrc:byte):longint;
var i:byte;
s:longint;
begin
s:=0;
for i:=1 to n do
s:=s+a[i,nrc];
suma_col:=s;
end;
procedure flipcoloana(j:byte);
var i:byte;
begin
for i:=1 to n do
a[i,j]:=-1*a[i,j];
end;
procedure fliplinie(i:byte);
var j:byte;
begin
for j:=1 to m do
a[i,j]:=-1*a[i,j];
end;
procedure back(i: byte);
var j,p,k:byte;
s:longint;
begin
if i = n+1 then
begin
for p := 1 to m do
if suma_col(p) < 0 then
flipcoloana(p);
s := suma;
if s>smax then
smax:=s;
end
else
for j := 1 to n do
for k := 1 to 2 do
if (k = 1) and not fol[j] then
begin
fliplinie(j);
fol[j]:=true;
back(i+1);
fliplinie(j);
fol[j]:=false;
end
else
back(i+1);
end;
begin
assign(f,'flip.in');
reset(f);
readln(f,n,m);
for i := 1 to n do
begin
for j := 1 to m do
read(f,a[i,j]);
readln(f);
end;
close(f);
smax:=0;
for i:=1 to n do
fol[i]:=false;
back(1);
assign(f,'flip.out');
rewrite(f);
writeln(f,smax);
close(f);
end.