Cod sursa(job #263830)

Utilizator Teodor94Teodor Plop Teodor94 Data 20 februarie 2009 20:47:46
Problema Jocul Flip Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.52 kb
uses crt;
var f,g:text;
    n,m,i,j,s1,s2:longint;
    a,b:array[0..50,0..50] of longint;
    sma,smi:array[0..50] of longint;
begin
  clrscr;
  assign(f,'flip.in'); reset(f);
  assign(g,'flip.out'); rewrite(g);
  read(f,n,m);
  b:=a;
  for i:=1 to n do
    for j:=1 to m do
      begin
        read(f,a[i,j]);
        if a[i,j]>0 then sma[i]:=sma[i]+a[i,j]
                    else smi[i]:=smi[i]-a[i,j];
      end;
  for i:=1 to n do
    if smi[i]>sma[i] then
      for j:=1 to m do a[i,j]:=a[i,j]*-1;
  for i:=1 to n do begin sma[i]:=0; smi[i]:=0; end;
  for i:=1 to n do
    for j:=1 to m do
      if a[i,j]>0 then sma[j]:=sma[j]+a[i,j]
                  else smi[j]:=smi[j]-a[i,j];
  for i:=1 to m do
    if smi[i]>sma[i] then
      for j:=1 to n do a[j,i]:=a[j,i]*-1;
  s1:=0;
  for i:=1 to n do
    for j:=1 to m do
      s1:=s1+a[i,j];
  a:=b;
  for i:=1 to n do
    for j:=1 to m do
      if a[i,j]>0 then sma[j]:=sma[j]+a[i,j]
                  else smi[j]:=smi[j]-a[i,j];
  for i:=1 to m do
    if smi[i]>sma[i] then
      for j:=1 to n do a[j,i]:=a[j,i]*-1;
  for i:=1 to m do begin smi[i]:=0; sma[i]:=0; end;
  for i:=1 to n do
    for j:=1 to m do
      if a[i,j]>0 then sma[i]:=sma[i]+a[i,j]
                  else smi[i]:=smi[i]-a[i,j];
  for i:=1 to n do
    if smi[i]>sma[i] then
      for j:=1 to m do a[i,j]:=a[i,j]*-1;
  s2:=0;
  for i:=1 to n do
    for j:=1 to m do
      s2:=s2+a[i,j];
  if s1>s2 then writeln(g,s1)
           else writeln(g,s2);
  close(f); close(g);
end.