Pagini recente » Cod sursa (job #2332760) | Cod sursa (job #1799546) | Cod sursa (job #2093189) | Cod sursa (job #769997) | Cod sursa (job #187420)
Cod sursa(job #187420)
program pb002;
type matrice=array [1..16,1..16] of longint;
var f,g:text;
x:array [1..2] of integer;
n,m:1..16;
max,y,s,i,j,neg,poz:longint;
h:boolean;
a,b:matrice;
procedure init(k:integer);
begin
x[k]:=0;
end;
function exista(k:integer):boolean;
begin
exista:=true;
if k=1 then if x[k]>=n then exista:=false;
if k=2 then if x[k]>=m then exista:=false;
end;
function sol(k:integer):boolean;
begin
sol:=(k=2);
end;
procedure maxim;
begin
for i:=1 to n do
for j:=1 to m do b[i,j]:=a[i,j];
for i:=1 to m do b[x[1],i]:=-a[x[1],i];
for j:=1 to n do b[j,x[2]]:=-a[j,x[2]];
s:=0;
for i:=1 to n do
for j:=1 to m do s:=s+b[i,j];
if s>max then max:=s;
end;
procedure bkt;
var k:1..2;
begin
max:=0;
k:=1; init(k);
while k>0 do
if exista(k) then begin
x[k]:=x[k]+1;
if sol(k) then maxim
else begin
k:=k+1;
init(k);
end
end
else k:=k-1;
end;
begin
assign(f,'flip.in');
assign(g,'flip.out');
reset(f);
rewrite(g);
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;
bkt;
write(g,max);
close(g);
close(f);
end.