Cod sursa(job #164311)

Utilizator yo_s_cantaCanta Andrei yo_s_canta Data 23 martie 2008 21:30:38
Problema Jocul Flip Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.12 kb
var f:text;
		sum,max,i,j,n,m:integer;
    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
          	s2[j,i]:=s2[j,i]*-1;
      { suma pe linii }
      for i :=1 to n do
        begin
        	s2[i,17]:=0;
	      	for j := 1 to m do
          	inc(s2[i,17],s2[i,j]);
        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
     	read(f,s[i,j]);
  back(1);
  assign(f,'flip.out');rewrite(f);
  writeln(f,max);
  close(f);
end.