Cod sursa(job #285560)

Utilizator danalex97Dan H Alexandru danalex97 Data 22 martie 2009 18:27:45
Problema Jocul Flip Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.33 kb
var a:array[1..16,1..16] of -1000000..1000000;
    n,m,i,j:1..16;
    ok:boolean;
    f,g:text;
    s,ss,co: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 read(f,a[i,j]);
repeat
  co:=co+1;
  ok:=true;
  if co mod 2=0 then
  begin
  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;
  end
else
  begin
  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;
  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;
  end;
until ok;
for i:=1 to n do
  for j:=1 to m do
    s:=s+a[i,j];
write(g,s);
close(f);
close(g);
end.