Cod sursa(job #89270)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 6 octombrie 2007 13:24:28
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<stdio.h>
int v[16][16],m,n,i,j,x,v1[15],v2[15],s,max;
int putere(int n){
	int temp2=1;
	for (int temp=0;temp<n;++temp)
		temp2*=2;
	return temp2;
}
void baza(int i){
	int baz=0,a;
	a=i;
	while (a!=0){
		baz=baz+1;
		v1[baz]=(a%2==0?-1:1);
		a=a/2;
	}
}
/*
void compara(){
	s=0;
	for (i=0;i<n;++i)
		if (v1[i]==1)inm_linia();
	for (i=0;i<m;++i)
		if (v2[i]==1)inm_coloana();
	for (i=0;i<n;++i)
		for (j=0;j<m;++j)
			s=s+v[i][j];
}
*/
int suma(){
	int i,j,sum=0,s;
	for (i=1;i<n+1;++i){
		s=0;
		for (j=1;j<=m;++j)
			s+=v[i][j]*v1[j];
		if (s<0)
			sum-=s;
		else sum+=s;
	}
	return sum;
}
int main(){
	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]);
	}
	max=-1000001;s=0;
	for (j=0;j<putere(m);++j){
		baza(j);
		s=suma();
		if (s>max) max=s;
		for(i=0;i<m;++i)
			v1[i]=0;
	}
	printf("%d\n",max);
	fclose(stdin);
	fclose(stdout);
	return 0;
}