Cod sursa(job #124732)

Utilizator andreivFMI - vacaroiu andrei andreiv Data 19 ianuarie 2008 19:50:52
Problema Jocul Flip Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.23 kb
program flip;
var s,s1,s2,sp1,sp2,i,j,n,m:longint;
    f,g:text;
    a,b:array[1..16,1..16] of longint;


procedure lincol;
begin
s1:=s;s2:=s;
for i:=1 to n do
begin
sp1:=0;sp2:=0;
 for j:=1 to m do
 begin
 sp1:=sp1+a[i,j];
 sp2:=sp2-a[i,j];
 end;
if sp1<sp2 then
begin
s1:=s1+sp2-sp1;
 for j:=1 to m do
 a[i,j]:=a[i,j]*(-1);
end;
end;
for j:=1 to m do
begin
sp1:=0;sp2:=0;
   for i:=1 to n do
   begin
   sp1:=sp1+a[i,j];
   sp2:=sp2-a[i,j];
   end;
if sp1<sp2 then
s1:=s1+sp2-sp1;
end;
end;

procedure collin;
begin
s2:=s;
for j:=1 to m do
begin
sp1:=0;sp2:=0;
   for i:=1 to n do
   begin
   sp1:=sp1+b[i,j];
   sp2:=sp2-b[i,j];
   end;
if sp1<sp2 then
begin
s2:=s2+sp2-sp1;
for i:=1 to n do
   b[i,j]:=b[i,j]*(-1);
end;
end;
for i:=1 to n do
begin
sp1:=0;sp2:=0;
 for j:=1 to m do
 begin
 sp1:=sp1+a[i,j];
 sp2:=sp2-a[i,j];
 end;
if sp1<sp2 then
s2:=s2+sp2-sp1;
end;
end;

begin
assign(f,'flip.in');
assign(g,'flip.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to n do
begin
  readln(f);
  for j:=1 to m do
  begin
  read(f,a[i,j]);b[i,j]:=a[i,j];
  s:=s+a[i,j];
  end;
end;

lincol;
collin;
if s1>s2 then
write(g,s1) else write(g,s2);
close(f);
close(g);
end.