Pagini recente » Cod sursa (job #3233577) | Cod sursa (job #2131227) | Cod sursa (job #2531973) | Cod sursa (job #2603415) | Cod sursa (job #601031)
Cod sursa(job #601031)
Program Flip;
var linii,coloane:array[1..16]of int64;
a:array[1..16,1..16]of longint;
suma,max:int64;
poz,m,n,i,j:integer;
f:text;
b:boolean;
Begin
assign(f,'flip.in'); reset(f); readln(f,n,m);
For i:=1 to n do
for j:=1 to m do
read(f,a[i,j]);
close(f);
For i:=1 to n do
For j:=1 to m do
begin
linii[i]:=linii[i]-a[i,j];
coloane[j]:=coloane[j]-a[i,j];
end;
max:=0; poz:=0;
For i:=1 to n do if linii[i]>max then begin max:=linii[i]; poz:=i; b:=true; end;
For i:=1 to m do if coloane[i]>max then begin max:=coloane[i]; poz:=i; b:=false; end;
While max>0 do begin
if b then
begin
linii[poz]:=-linii[poz];
For i:=1 to m do a[poz,i]:=-a[poz,i]
end
else
begin
coloane[poz]:=-coloane[poz];
for i:=1 to n do a[i,poz]:=-a[i,poz];
end;
if b then
for j:=1 to m do begin
suma:=0;
for i:=1 to n do
suma:=suma + a[i,j];
coloane[j]:=-suma;
end
else
For i:=1 to n do begin
suma:=0;
For j:=1 to m do
suma:=suma+a[i,j];
linii[i]:=-suma;
end;
max:=0;
For i:=1 to n do if linii[i]>max then begin max:=linii[i]; poz:=i; b:=true; end;
For i:=1 to m do if coloane[i]>max then begin max:=coloane[i]; poz:=i; b:=false; end;
end;
suma:=0;
For i:=1 to n do
for j:=1 to m do
suma:=suma+a[i,j];
assign(f,'flip.out'); rewrite(f);
writeln(f,suma); close(f);
end.