Cod sursa(job #1148533)

Utilizator Mihai_ChihaiMihai Chihai Mihai_Chihai Data 20 martie 2014 21:05:32
Problema Jocul Flip Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.16 kb
program flip;
  var n,m,i,j,k,l,sum,maxsum:longint;
    a,a1:array[1..20,1..20] of longint;
     b:array[0..15] of 0..1;
     f,g:text;
  begin
   assign(f,'flip.in');
   reset(f);
   readln(f,n,m);
   for i:=1 to n do
    begin
    for j:=1 to m do begin read(f,a[i,j]); a1[i,j]:=a[i,j]; end;
    readln(f);
    end;

   for i:=0 to 1 shl n do
     for j:=0 to 1 shl m do
        begin
          for k:=0 to 15do if (i and (1 shl k))<>0 then b[k]:=1
                                                        else b[k]:=0;
          for k:=1 to n do if
            b[k]=1 then
              for  l:=1 to m do a[k,l]:=-a[k,l];
          for k:=0 to 15 do if (j and (1 shl k))<>0 then b[k]:=1
            else b[k]:=0;
          for  k:=1 to m do
            if b[k]=1 then
               for l:=1 to n do a[l,k]:=-a[l,k];
          sum:=0;
          for k:=1 to n do
            for l:=1 to m do begin
                        sum:=sum+a[k,l];
                        a[k,l]:=a1[k,l];
                        end;
            if sum>maxsum then maxsum:=sum;
          end;
   assign(g,'flip.out');
   rewrite(g);
   writeln(g,maxsum);
  close(g);
end.