Pagini recente » Borderou de evaluare (job #1471558) | Cod sursa (job #90070)
Cod sursa(job #90070)
var a:array[1..16,1..16] of int64;
sl,back:array[1..16] of integer;
s1,s2,sum,n,f,co,poz,max,m,gas:int64;
i,j,t:longint;
f1,f2:text;
begin
assign(f1,'flip.in');
assign(f2,'flip.out');
reset(f1);
rewrite(f2);
read(f1,n,m);
max:=0;
for i:=1 to n do
begin
sl[i]:=0;
for j:=1 to m do
begin
read(f1,a[i][j]);
sl[i]:=sl[i]+a[i][j];
max:=max+a[i][j];
end;
end;
f:=1;
for i:=1 to n do
f:=f*2;
f:=f-1;
for i:=1 to n do
back[i]:=0;
for t:=1 to f do
begin
co:=t;poz:=1;sum:=0;
while co>0 do
begin
back[poz]:=co mod 2;
co:=co div 2;
poz:=poz+1;
end;
for i:=1 to n do
if back[i]=0 then sum:=sum+sl[i]
else sum:=sum+sl[i]*(-1);
for j:=1 to m do
begin
s1:=0;s2:=0;
for i:=1 to n do
begin
if back[i]=1 then s1:=s1+(-1)*a[i][j]
else s1:=s1+a[i][j];
if back[i]=1 then s2:=s2+a[i][j]
else s2:=s2+(-1)*a[i][j];
end;
if s2>s1 then sum:=sum-s1+s2;
end;
if sum>max then max:=sum;
end;
writeln(f2,max);
close(f1);
close(f2);
end.