Pagini recente » Cod sursa (job #241848) | Cod sursa (job #1925398) | Cod sursa (job #1408945) | Cod sursa (job #848754) | Cod sursa (job #731454)
Cod sursa(job #731454)
program infoArena002;
var
fIn,fOut:text;
a:array[1..20,1..20] of longint;
n,m,i,j,s:longint;
modified:boolean;
function sumLine(i:longint):longint;
var
s,j:longint;
begin
s:=0; j:=0;
for j:=1 to m do
s:=s+a[i,j];
sumLine:=s;
end;
function sumLineInv(i:longint):longint;
var
s,j:longint;
begin
s:=0; j:=0;
for j:=1 to m do
s:=s+a[i,j]*(-1);
sumLineInv:=s;
end;
function sumCol(j:longint):longint;
var
s,i:longint;
begin
s:=0; i:=0;
for i:=1 to n do
s:=s+a[i,j];
sumCol:=s;
end;
function sumColInv(j:longint):longint;
var
s,i:longint;
begin
s:=0; i:=0;
for i:=1 to n do
s:=s+a[i,j]*(-1);
sumColInv:=s;
end;
procedure changeLine(i:longint);
var
j:longint;
begin
for j:=1 to m do
a[i,j]:=a[i,j]*(-1);
end;
procedure changeCol(j:longint);
var
i:longint;
begin
for i:=1 to n do
a[i,j]:=a[i,j]*(-1);
end;
begin
n:=0; m:=0; i:=0; j:=0; s:=0; modified:=false;
assign(fIn,'flip.in'); assign(fOut,'flip.out');
reset(fIn); rewrite(fOut);
readln(fIn,n,m);
for i:=1 to n do begin
for j:=1 to m do
read(fIn,a[i,j]);
readln(fIn); end;
repeat
modified:=false;
for i:=1 to n do
if (sumLine(i)<sumLineInv(i)) then begin
changeLine(i); modified:=true; end;
for j:=1 to m do
if (sumCol(j)<sumColInv(j)) then begin
changeCol(j); modified:=true; end;
until (modified=false);
for i:=1 to n do
for j:=1 to m do
s:=s+a[i,j];
writeln(fOut,s);
close(fIn); close(fOut);
end.