Cod sursa(job #197851)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 6 iulie 2008 18:14:39
Problema Jocul Flip Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.98 kb
var a,b : array[0..20,0..20] of longint;
    use : array[0..20] of integer;
    sol : array[0..20] of longint;
    i,j,n,m : longint;
    max : int64;
    f,g : text;
procedure vezi(k : integer);
var i : integer;
    sum,tot : int64;
begin
  tot:=0; a:=b;
  for i:=1 to n do
    if use[i]=1 then
      for j:=1 to m do
        a[i,j]:=-a[i,j];
  for j:=1 to m do
  begin
    sum:=0;
      for i:=1 to n do
        sum:=sum+a[i,j];
      if sum>-sum then tot:=tot+sum
      else tot:=tot-sum;
  end;
  if tot>max then max:=tot;
end;

procedure back(k : integer);
var i : integer;
begin
    for i:=sol[k-1]+1 to n do
    begin
      sol[k]:=i;
      use[i]:=1;
      vezi(k);
      back(k+1);
      use[i]:=0;
    end;
end;

begin
  assign(f,'flip.in');reset(f);
  assign(g,'flip.out');rewrite(g);
  read(f,n,m); max:=-100000000000000;
    for i:=1 to n do
      for j:=1 to m do
        read(f,a[i,j]);
  b:=a;
  back(1);
  writeln(g,max);
  close(g);
end.