Cod sursa(job #270969)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 4 martie 2009 19:09:15
Problema Jocul Flip Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.45 kb
var f,g:Text;
    n,m,x,max,maxl,z,nr,i,j:longint;
    s:real;
    a:array[1..16,1..16]of longint;
    ok:boolean;
    l,c:array[1..16]of longint;
procedure testare;
          var ok1,ok2:boolean;
          begin
          ok1:=false;
          ok2:=false;
          for i:=1 to m do
              if c[i]<0 then ok1:=true;
          for i:=1 to n do
              if l[i]<0 then ok2:=true;
          if (ok1)or(ok2) then ok:=true
          else ok:=false;
          end;
begin
assign(f,'flip.in');reset(f);
assign(g,'flip.out');rewrite(g);
readln(F,n,m);
for i:=1 to n do
    for j:=1 to m do
    read(f,a[i,j]);
ok:=true;

for i:=1 to m do
    for j:=1 to n do
    c[i]:=c[i]+a[j,i];
for i:=1 to n do
    for j:=1 to m do
    l[i]:=l[i]+a[i,j];
while ok do
begin
for i:=1 to m do
    begin
    for j:=1 to n do
    if (max>c[i])and(c[i]<0)then begin
                                 max:=c[i];
                                 x:=i;
                                 end;
    end;
for i:=1 to n do
    begin
    for j:=1 to m do
    if (maxl>l[i])and(l[i]<0)then begin
                                 maxl:=l[i];
                                 z:=i;
                                 end;
    end;

c[x]:=c[x]*(-1);
l[z]:=l[z]*(-1);
for i:=1 to n do
    a[i,x]:=a[i,x]*(-1);
for i:=1 to m do
    a[z,i]:=a[z,i]*(-1);
testare;
end;
for i:=1 to n do
    for j:=1 to m do
    s:=s+a[i,j];
writeln(g,s:0:0);
close(g);
end.