Pagini recente » Cod sursa (job #1012649) | Cod sursa (job #1003440) | Cod sursa (job #219628) | Istoria paginii utilizator/xxxtentacion | Cod sursa (job #42659)
Cod sursa(job #42659)
{
Jocul Flip
}
Program Flip;
Type Matrice = array[1..16,1..16] of Longint;
Vector = array[1..16] of ^Shortint;
Var a : matrice;
suma, st : longint;
n, m, i, j, k : byte;
s : ^Vector;
cod1 :Boolean;
Function sumaMatrix : Longint;
Var i, j : integer;
sm, s1 : Longint;
Begin
sm := 0;
For j := 1 to m do
Begin
s1 := 0;
For i := 1 to n do if s^[i]^ = 1 then s1 := s1-a[i,j]
else s1 := s1+a[i,j];
if s1 < 0 then sm := sm -s1 else sm := sm +s1;
End;
sumaMatrix := sm;
End;
Begin
Assign( input, 'flip.in' );
Reset( input );
Readln( n, m );
For i := 1 to n do
For j := 1 to m do
Read( a[i,j] );
Close( input );
New( s );
For i := 1 to n do Begin New( s^[i] ); s^[i]^ := 0; End;
k := 1;
suma := 0;
s^[k]^ := -1;
Repeat
Repeat
If ( s^[k]^ < 1 ) then
Begin
cod1 := true;
s^[k]^ := s^[k]^ +1;
End
else cod1 := false;
Until ( not cod1 ) or ( ( cod1 ) and ( k <= n ) );
if cod1 then
if k = n then
Begin
st := sumaMatrix;
if st > suma then suma := st;
End
else
Begin
k := k+1;
s^[k]^ := -1;
End
else
k := k-1;
Until k = 0;
Assign( output, 'flip.out' );
Rewrite( output );
Writeln( suma );
Close( output );
for k := 1 to n do
dispose( s^[k] );
dispose( s );
End.