Cod sursa(job #800260)

Utilizator TibixbAndrei Tiberiu Tibixb Data 21 octombrie 2012 10:34:44
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#include<string.h>
using namespace std;
int n, m, i, j, p, v[10000], a[100][100], b[100][100], s, maxim, sum;
int main(){
	ifstream cin("flip.in");
	ofstream cout("flip.out");
	cin>>n>>m;
	for(i=1; i<=n; i++){
		for(j=1; j<=m; j++){
			cin>>a[i][j];
		}
	}
	p=1;
	for(i=1; i<=n; i++)
		p*=2;
	for(i=0; i<=p; i++){
		j=m;
		while(v[j]==1){
			v[j]=0;
			j--;
		}
		v[j]=1;
		memcpy(b,a,sizeof(a));
		
		for(j=1; j<=m; j++){
			if(v[j]==1){
				//interschimbam val de pe coloana j
				for(i=1; i<=n; i++){
					b[i][j]=-b[i][j];
				}
			}
		}
		sum = 0;
		for(i=1; i<=n; i++){
			s = 0;
			for(j=1; j<=m; j++){
				s+=b[i][j];
			}
			if (s>0)
				sum += s;
			else 
				sum -= s;
		}
		
		if(sum>maxim){
			maxim=sum;
		}
		
	}
	cout<<maxim;


return 0;
}