Cod sursa(job #2093497)

Utilizator _Victor_Victor Ciobanu _Victor_ Data 23 decembrie 2017 20:37:13
Problema Jocul Flip Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.01 kb
Program Flip;
type tab=array[1..16,1..16] of -1000000..1000000;
mult=-1..1;
fli = array[1..16] of mult;
var a:tab;
fl:fli;
f,g:text;
m,n,i,j:1..16;
s:longint;
function Solut(a:tab):longint;
var i,j:1..16;
s,sol:longint;
begin
sol:=0;
for j:=1 to m do begin
 s:=0;
 for i:=1 to n do begin
  s:=s+fl[i]*a[i,j];
  //writeln('* ',fl[i]);
  end;
sol:=sol+abs(s);
//writeln('<sol>',sol);
end;
solut:=sol;
end;
function backtrack(a:tab; k:byte):longint;
var i:byte;
sa,s:longint;  //sa - s anterior
begin
s:=0;
 if k<=n then begin
  for i:=1 to m do
   s:= s + a[k,i];
  if k<n then begin
    sa:=backtrack(a,k+1);
   if -sa>sa then fl[k+1]:=-1 else fl[k+1]:=1;
  end;
  end;
backtrack:=s;
end;
begin
assign(f,'flip.in');
assign(g,'flip.out');
reset(f);
rewrite(g);
readln(f,n,m);
for i:=1 to n do begin
 for j:=1 to m do
  read(f,a[i,j]);
  readln(f);
  end;
s:=backtrack(a,1);
if -s>s then fl[1]:=-1 else fl[1]:=1;
writeln(g,solut(a));
{readln;
readln;}
close(f);
close(g);
end.