Cod sursa(job #966859)

Utilizator cosmin16Didii Theodor-Cosmin cosmin16 Data 26 iunie 2013 17:55:19
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <stdio.h>
int matrix[16][16];
int sum(int n, int m){
	int i, j, sum = 0;

	for(i = 0; i < n; i++)
		for(j = 0; j < m; j++)
			sum += matrix[i][j];
	return sum;
}
void change_line(int i, int m){
	int j;
	for(j = 0; j < m; j++)
		matrix[i][j] *= -1;
}
void change_row(int j, int n){
	int i;
	for(i = 0; i < n; i++)
		matrix[i][j] *= -1;
}
int main()
{
	freopen ("flip.in","r",stdin);
	freopen ("flip.out","w",stdout);

	int n, m, i, j;
	scanf("%d%d", &n, &m);


	for(i = 0; i < n; i++)	
		for(j = 0; j < m; j++)
			scanf("%d", &matrix[i][j]);

	int max_sum = 0;
	int temp_sum = 0;

	max_sum = sum(n, m);
	int current_max = 0;
/*
	while( current_max != max_sum){
		current_max = max_sum;
		for(i = 0; i < n; i++){
			change_line(i, m);
			temp_sum = sum(n, m);
			if(temp_sum > max_sum){
				max_sum = temp_sum;
			}else
				change_line(i, m);
		}	
		for(j = 0; j < m; j++){
			change_row(j, n);
			temp_sum = sum(n, m);
			if(temp_sum > max_sum){
				max_sum = temp_sum;
			}else
				change_row(j, n);
		}	
	}*/
	for(i = 0; i < n; i++)
		for( j = 0; j < m; j++){
			change_row(j, n);
			change_line(i, m);
			temp_sum = sum(n, m);
			if (max_sum < temp_sum)
			{
				max_sum = temp_sum;
			}else{
				change_row(j, n);
				change_line(i, m);
			}

		}

	printf("%d\n", max_sum);
}