Cod sursa(job #1038450)

Utilizator vyrtusRadu Criuleni vyrtus Data 21 noiembrie 2013 15:50:12
Problema Jocul Flip Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.09 kb
Program jocul_flip;
type vector=array[1..20] of boolean;
 var i,j,x,sum,n,m,k:integer;
  f,g:text;
     a:array[1..20,1..20] of longint;
      b:vector;

  FUnction suma(var b:vector):integer;
    var s,sf,q,w:integer;
   begin
    sf:=0;
     for q:=1 to m do
      begin
         s:=0;
     for w:=1 to n do
       if b[w] then s:=s+(a[w,q]*(-1)) else s:=s+a[w,q];
        sf:=abs(s)+sf;
      end;
       suma:=sf;
   end;

  begin

    assign(f,'flip.in');
    reset(f);
     read(f,n,m);
     sum:=0;
     for i:=1 to n do
      for j:=1 to m do
       begin
       read(f,a[i,j]);
       sum:=sum+a[i,j];
       end;

    x:=n;
     for i:=1 to (1 shl (x+1))-1 do
     begin
     if odd(i) then
      begin
       for k:=1 to n do
        b[k]:=false;

      for j:=1 to x do
       if (1 shl j and i)>0 then b[j]:=true;

      if suma(b)>sum then sum:=suma(b);
       end;

     end;

                     writeln(sum);


       assign(g,'flip.out');
        rewrite(g);

         writeln(g,sum);


        close(f);
        close(g);
     end.