Cod sursa(job #23218)

Utilizator Adrian001Vladulescu Adrian Adrian001 Data 28 februarie 2007 14:42:34
Problema Jocul Flip Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.2 kb
Program cel;
Type matrice=array[1..16,1..16] of longint;
     vector=array[1..16] of byte;
var f,g:text;
    a:vector;
    b:matrice;
    n,m,i,j:byte;
    S:longint;

procedure prelucrare(a:vector;b:matrice;k:byte;var S:longint);
var i,j:byte;
    S1,S2:longint;
Begin
For i:=1 to k do
  For j:=1 to m do b[a[i],j]:=b[a[i],j]*(-1);
For j:=1 to m do
 Begin
  S1:=0;
  For i:=1 to n do Begin
                    S1:=S1+b[i,j];
                    If S1<0 then break;
                   end;
  If S1<0 then For i:=1 to n do b[i,j]:=b[i,j]*(-1);
 end;
S2:=0;
For i:=1 to n do
 For j:=1 to m do
  S2:=S2+b[i,j];
If S<S2 then S:=S2;
end;

procedure combinari(n,k,j:byte);
var i:byte;
Begin
If j=k then prelucrare(a,b,k,S)
       else Begin
             j:=j+1;
             For i:=a[j-1]+1 to n-k+j do
              Begin
               a[j]:=i;
               Combinari(n,k,j);
              end;
            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
 Begin
  For j:=1 to m do Read(f,b[i,j]);
  Readln(f);
 end;
S:=-2000000000;
For i:=0 to n do combinari(n,i,0);
Write(g,S);
Close(f);
Close(g);
end.