Cod sursa(job #308639)

Utilizator kolapsysPostelnicu Dan Marian kolapsys Data 28 aprilie 2009 01:12:12
Problema Jocul Flip Scor 100
Compilator fpc Status done
Runda tot Marime 1.07 kb
{ http://infoarena.ro/problema/flip }
type matrice = array[1..16,1..16] of longint;
     stiva = array[1..16] of shortint;
var
   f, g : text;
   a : matrice;
   st : stiva;
   i, j, n, m : byte;
   smax : longint;
procedure suma;
var i, j : byte;
    s, slin : longint;
begin
    s := 0;
    for i := 1 to n do
        begin
        slin := 0;
        for j := 1 to m do
                slin := slin + st[j] * a[i,j];
        if slin < 0 then s := s - slin
                    else s := s + slin;
        end;
    if s > smax then smax := s;
end;

procedure back(i : integer);
begin
    if i > m then suma
             else begin
                  st[i] := 1;
                  back(i + 1);
                  st[i] := -1;
                  back(i + 1);
                  end;
end;

BEGIN
   assign(f, 'flip.in'); reset(f);
   assign(g, 'flip.out'); rewrite(g);
   readln(f, n, m);
   for i := 1 to n do
        for j := 1 to m do
                read(f, a[i,j]);
   smax := -maxlongint;
   back(1);
   writeln(g, smax);
   close(f); close(g);
END.