Cod sursa(job #164893)

Utilizator bogdan005Aldescu Bogdan bogdan005 Data 24 martie 2008 22:07:30
Problema Jocul Flip Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.37 kb
   var f:text;  
           sum,max,i,j,n,m:longint;  
        s,s2:array[1..17,1..17] of longint;  
       sol:array[1..17] of integer;  
    procedure back(nr:integer);  
    var k:integer;  
    begin  
       if nr=m+1 then  
        begin  
           s2:=s;  
           { intorc coloanele }  
           for i:=1 to m do  
           if sol[i]=2 then  
               for j:=1 to n do  
            begin  
                   s2[j,i]:=s2[j,i]*-1;  
               inc(s2[j,17],2*s2[j,i]);  
               end;  
       { intorc linile }  
         for i :=1 to n do  
          if s2[i,17] < 0 then  
               for j := 1 to m do  
               s2[i,j]:=s2[i,j]*-1;  
        { suma }  
         sum:=0;  
         for i :=1 to n do  
           for j := 1 to m do  
             inc(sum,s2[i,j]);  
         if sum>max then  
           max:=sum;  
       end  
     else  
       begin  
         for k := 1 to 2 do  
      begin  
               sol[nr]:=k;  
              back(nr+1);  
             end;  
       end;  
   end;  
   begin  
       assign(f,'flip.in');reset(f);  
     read(f,n,m);  
    for i := 1 to n do  
      for j := 1 to m do  
   begin       read(f,s[i,j]);  
   inc(s[i,17],s[i,j]);  
   end;  
     back(1);  
     assign(f,'flip.out');rewrite(f);  
     writeln(f,max);  
     close(f);  
   end.