Cod sursa(job #388664)

Utilizator energizerBunnyCicu Mihai energizerBunny Data 30 ianuarie 2010 18:06:25
Problema Jocul Flip Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.91 kb
program pascal;
type
 mat = array[1..16,1..16] of longint;
 vect = array[1..32] of -3..1;
var
 a:mat;
 x:vect;
 max,maxim:longint;
 m,n,i,j:byte;
 f:text;

procedure prel_sol;
var
 sum,suma:longint;
begin
 suma:=0;
 for i:=1 to m do begin
   sum:=0;
   for j:=1 to n do
     sum:=sum+a[i,j]*x[j];
   suma:=suma+abs(sum);
 end;
 if maxim<suma then
    maxim:=suma;
end;

procedure back;
var k:byte;
Begin
 for k:=1 to n do
  x[k]:=-1;
 k:=n+1;
 while k>0 do
  if k=n+1 then begin
   prel_sol;
   dec(k);
  end
  else if x[k]<=-1 then begin
    x[k]:=x[k]+2;
    inc(k);
  end
  else begin
   x[k]:=-3;
   dec(k);
  end;
End; {de la procedura back}

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

 maxim:=-maxint;
 back;

 assign(f,'flip.out');
 rewrite(f);
 write(f,maxim);
 close(f);
end.