Cod sursa(job #285588)

Utilizator danalex97Dan H Alexandru danalex97 Data 22 martie 2009 18:46:04
Problema Jocul Flip Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.41 kb
var a,b:array[1..16,1..16] of -1000000..1000000;
    n,m,i,j:1..16;
    ok:boolean;
    f,g:text;
    s1,ss,s2:longint;
begin
assign(f,'flip.in');
reset(f);
assign(g,'flip.out');
rewrite(g);
read(f,n,m);
for i:=1 to n do
  for j:=1 to m do
    begin
      read(f,a[i,j]);
      b[i,j]:=a[i,j];
    end;
repeat
  ok:=true;
  for j:=1 to m do
    begin
      ss:=0;
      for i:=1 to n do
        ss:=ss+a[i,j];
      if ss<0 then
        begin
          ok:=false;
          for i:=1 to n do a[i,j]:=a[i,j]*(-1);
        end;
    end;
  for i:=1 to n do
    begin
      ss:=0;
      for j:=1 to m do
        ss:=ss+a[i,j];
      if ss<0 then
        begin
          for j:=1 to m do a[i,j]:=a[i,j]*(-1);
          ok:=false;
        end;
    end;
until ok;
for i:=1 to n do
  for j:=1 to m do
    s1:=s1+a[i,j];
repeat
  ok:=true;
  for i:=1 to n do
    begin
      ss:=0;
      for j:=1 to m do
        ss:=ss+b[i,j];
      if ss<0 then
        begin
          for j:=1 to m do b[i,j]:=b[i,j]*(-1);
          ok:=false;
        end;
    end;
  for j:=1 to m do
    begin
      ss:=0;
      for i:=1 to n do
        ss:=ss+b[i,j];
      if ss<0 then
        begin
          ok:=false;
          for i:=1 to n do b[i,j]:=b[i,j]*(-1);
        end;
    end;
until ok;
for i:=1 to n do
  for j:=1 to m do
    s2:=s2+b[i,j];
write(g,(s1+s2) div 2);
close(f);
close(g);
end.