Cod sursa(job #639465)

Utilizator juliussSimion Stefan juliuss Data 23 noiembrie 2011 12:15:10
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#define LEN 17
#define INF 999999999

int v[LEN][LEN];
int x[LEN];
int n, m, sum, total;
int best = -INF;

void back(int);
void compute(void);

int
main(void)
{
	int i, j;
	
	freopen("flip.in", "r", stdin);
	freopen("flip.out", "w", stdout);
	
	scanf("%d %d", &n, &m);
	
	for(i = 0; i < n; i++)
		for(j = 0; j < m; j++)
			scanf("%d", &v[i][j]);
			
	back(0);

	printf("%d", best);

	return 0;
}

void 
back(int k)
{
	int i;

	for(i = 0; i <= 1; i++)
	{
		x[k] = i;
		if(k >= m - 1)
			compute();
		else
			back(k + 1);
	}
}

void
compute(void)
{
	int i, j;

	total = 0;
	for(i = 0; i < n; i++)
	{
		sum = 0;
		for(j = 0; j < m; j++)
		{
			if(x[j] == 1)
				sum -= v[i][j];
			else
				sum += v[i][j];
		}
		
		if(sum < 0)
			sum *= -1;
		total += sum;
	}

	if(total > best)
		best = total;
}