Cod sursa(job #1816936)

Utilizator balazstasiTasi Balazs balazstasi Data 27 noiembrie 2016 09:55:02
Problema Jocul Flip Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.01 kb
Type Matrix = Array [1..20, 1..20] Of Integer;

VAR
	i,j,n,m,k,s, MAX : Integer;
	f, g			 : Text;
	a				 : Matrix;

Function Sum_Arr(a : Matrix) : Integer;
Begin
	Sum_Arr := 0;
	for i:=1 to m do
		for j:=1 to n do
			Sum_Arr := Sum_Arr + a[i,j];
End;

Procedure Flip_Row (x : Integer);
Begin
	for i:=1 to m do
		a[i,x] := -a[i,x];
End;

Procedure Flip_Column (x : Integer);
Begin
	for i:=x to n do
		a[x,i] := -a[x,i];
End;

BEGIN
	Assign(f,'flip.in');
	Assign(g,'flip.out');
	Reset(f); Rewrite(g);
	
	Read(f,n,m);
	
	for i:=1 to n do
		for j:=1 to m do
			Read(f,a[i,j]);
			
	k := 1;
	
	MAX := -MaxInt;

	While (k <= m) do
		begin
			S:=Sum_Arr(a);
			Flip_Column(k);
			If Sum_Arr(a) > S then MAX:=Sum_Arr(a)
							  else Flip_Column(k);
			Inc(k);
		end;
	
	k := 1;
		
	While (k <= n) do
		begin
			S:=Sum_Arr(a);
			Flip_Row(k);
			If Sum_Arr(a) > S then MAX:=Sum_Arr(a)
							  else Flip_Row(k);
			Inc(k);
		end;
			
	Write(g, MAX);
	
	Close(f); Close(g);

END.