Cod sursa(job #46567)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 2 aprilie 2007 19:05:10
Problema Jocul Flip Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.23 kb
var a:array[1..17,1..17]of longint;
    colo,val,frec:array[1..100]of longint;
    max1,max,aux,aux1,n,m,i,j,p,co,col,lin,sum:longint;
    f1,f2:text;
begin
{assign(f1,'flip.in'); reset(f1);
assign(f2,'flip.out'); rewrite(f2); }
read({f1,}n);
read({f1,}m);
for i:=1 to n do
    for j:=1 to m do
        read({f1,}a[i,j]);
col:=0;
repeat
      inc(col);
      inc(co);
      for i:=1 to n do
          if a[i,col]<0 then
             begin
                  inc(val[co]);
                  colo[co]:=col;
             end;
until(col=m);
lin:=0;
repeat
      inc(lin);
      inc(co);
      for j:=1 to m do
          if a[lin,j]<0 then
             begin
                  inc(val[co]);
                  colo[co]:=lin;
             end;
until(lin=n);
max:=-1;
for i:=1 to m do
    if max<val[i] then max:=val[i];
max1:=-1;
for i:=m+1 to m+n do
    if max1<val[i] then max1:=val[i];
p:=0;
if max>max1 then
   begin
        for i:=1 to m do
            if max=val[i] then
               begin
                    inc(p);
                    frec[p]:=colo[i];
               end;
        for j:=1 to p do
            for i:=1 to n do
                a[i,frec[j]]:=a[i,frec[j]]*-1;
   end
else
if max1>max then
   begin
        for i:=m+1 to m+n do
            if max1=val[i] then
               begin
                    inc(p);
                    frec[p]:=colo[i];
               end;
        for i:=1 to p do
            for j:=1 to m do
                a[frec[i],j]:=a[frec[i],j]*-1;
   end
else
if max1=max then
   begin
         for i:=1 to m do
            if max=val[i] then
               begin
                    inc(p);
                    frec[p]:=colo[i];
               end;
        for j:=1 to p do
            for i:=1 to n do
                a[i,frec[j]]:=a[i,frec[j]]*-1;
        p:=0;
        for i:=m+1 to m+n do
            if max1=val[i] then
               begin
                    inc(p);
                    frec[p]:=colo[i];
               end;
        for i:=1 to p do
            for j:=1 to n do
                a[frec[i],j]:=a[frec[i],j]*-1;
   end;
for i:=1 to n do
    for j:=1 to m do
        sum:=sum+a[i,j];
write({f2,}sum);
{close(f1);
close(f2);}
end.