Cod sursa(job #614465)

Utilizator theavengerflorea marius florin theavenger Data 6 octombrie 2011 16:39:43
Problema Jocul Flip Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.77 kb
program e2;

var
	f_in,f_out:text;
	a,b:array[1..16,1..16] of longint;
	i,j,n,m:word;
	s,s_init,scl,slc:longint;

function s_col_lin:longint;
	begin
		s:=0; s_init:=0;
		//schimba coloanele unde e cazul
		for j:=1 to m do begin
			for i:=1 to n do begin
				s_init:=s_init+a[i,j];
				s:=s+a[i,j]*(-1); end;
			if (s>s_init) then
				for i:=1 to n do
					a[i,j]:=a[i,j]*(-1);
			s:=0; s_init:=0; end;
		
		s:=0; s_init:=0;
		//schimba liniile unde e cazul	
		for i:=1 to n do begin
			for j:=1 to m do begin
				s_init:=s_init+a[i,j];
				s:=s+a[i,j]*(-1); end;
			if (s>s_init) then
				for j:=1 to m do
					a[i,j]:=a[i,j]*(-1);
			s:=0; s_init:=0; end;
			
		s:=0;
		for i:=1 to n do
			for j:=1 to m do
				s:=s+a[i,j];
		
		s_col_lin:=s;
	end;
	
function s_lin_col:longint;
	begin
		s:=0; s_init:=0;
		//schimba liniile unde e cazul	
		for i:=1 to n do begin
			for j:=1 to m do begin
				s_init:=s_init+b[i,j];
				s:=s+b[i,j]*(-1); end;
			if (s>s_init) then
				for j:=1 to m do
					b[i,j]:=b[i,j]*(-1);
			s:=0; s_init:=0; end;
		
		s:=0; s_init:=0;
		//schimba coloanele unde e cazul
		for j:=1 to m do begin
			for i:=1 to n do begin
				s_init:=s_init+b[i,j];
				s:=s+b[i,j]*(-1); end;
			if (s>s_init) then
				for i:=1 to n do
					b[i,j]:=b[i,j]*(-1);
			s:=0; s_init:=0; end;
			
		s:=0;
		for i:=1 to n do
			for j:=1 to m do
				s:=s+b[i,j];
		s_lin_col:=s;
	end;

begin
	i:=0; j:=0; n:=0; m:=0; s:=0; s_init:=0; scl:=0; slc:=0;

	assign(f_in,'flip.in');
	assign(f_out,'flip.out');
	reset(f_in); rewrite(f_out);
	
	readln(f_in,n,m);
	for i:=1 to n do begin
		for j:=1 to m do begin
			read(f_in,a[i,j]);
			b[i,j]:=a[i,j]; end;
		readln(f_in); end;
	
	scl:=s_col_lin;
	slc:=s_lin_col;
	if (scl>slc) then	
		writeln(f_out,scl)
	else
		writeln(f_out,slc);
	
	close(f_in); close(f_out);	
end.