Cod sursa(job #705133)

Utilizator geobarosanu1Tutuianu George geobarosanu1 Data 3 martie 2012 11:57:08
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>
#define max(a,b) a>b ? a : b

int n,m,A[17][17],B[17];

int suma(){
	int sum=0,sum_aux;

	for (int i=1;i<=n;++i){
		sum_aux=0;

		for (int j=1;j<=m;++j){
			if (B[j])
				sum_aux+=A[i][j];
			else
				sum_aux-=A[i][j];
		}

		if (sum_aux>0)
			sum+=sum_aux;
		else
			sum-=sum_aux;
	}
	return sum;
}
void rezolva (int sol){

	for (int k=1;k<=(1<<m);++k){
		int rest=k;
		for (int i=1;i<=m;++i){
			B[i]=rest%2;
			rest/=2;
		}

		if (sol<suma())
			sol=suma();

	}

	printf("%d", sol);

}
int main()
{
	freopen("flip.in","r",stdin);
	freopen("flip.out","w",stdout);

	scanf("%d %d", &n, &m);
	int sol=0;

	for (int i=1;i<=n;i++)
		for (int j=1;j<=m;j++){
			scanf("%d", &A[i][j]);
			sol+=A[i][j];
		}

	rezolva(sol);

	return 0;
}