Cod sursa(job #30016)

Utilizator Bluedrop_demonPandia Gheorghe Bluedrop_demon Data 12 martie 2007 12:49:41
Problema Jocul Flip Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.58 kb
{
    Jocul Flip
}

Program Flip;

Const Max = 16;

Type matrice = array[1..Max,1..Max] of Longint;

Var a : matrice;
    n, m, i, j : byte;
    s : longint;

Procedure MaxLinie( i : byte );
Var j : byte;
    s1, s2 : Longint;
Begin
     s1 := 0;
     For j := 1 to m do
         s1 := s1+a[i,j];
     s2 := 0;
     For j := 1 to m do
         s2 := s2-a[i,j];
     If s2 > s1 then
        For j := 1 to m do
            a[i,j] := -a[i,j];
End;

Procedure MaxColoana( j : byte );
Var i : byte;
    s1, s2 : Longint;
Begin
     s1 := 0;
     For i := 1 to n do
         s1 := s1+a[i,j];
     s2 := 0;
     For i := 1 to n do
         s2 := s2-a[i,j];
     If s2 > s1 then
        For i := 1 to n do
            a[i,j] := -a[i,j];
End;

Begin
     Assign( input, 'flip.in' );
     Reset( input );
            Readln( n, m );
            For i := 1 to n do
                Begin
                     For j := 1 to m do
                         Read( a[i,j] );
                     Readln;
                End;
     Close( input );

     For i := 1 to n do
         Begin
              MaxLinie( i );
              For j := 1 to m do
                  MaxColoana( j );
         End;

     For j := 1 to m do
         Begin
              MaxColoana( j );
              For i := 1 to n do
                  MaxLinie( i );
         End;

     s := 0;
     For i := 1 to n do
         For j := 1 to m do
             s := s + a[i,j];

     Assign( output, 'flip.out' );
     Rewrite( output );
              Writeln( s );
     Close( output );
End.