Cod sursa(job #800263)

Utilizator TibixbAndrei Tiberiu Tibixb Data 21 octombrie 2012 10:47:05
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<string.h>
using namespace std;
int n, m, i, j, p, v[17], a[17][17], b[17][17], s, maxim, sum, k;
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];
		}
	}
	//memcpy(b,a,sizeof(a));
	p=1;
	for(i=1; i<=m; i++)
		p*=2;
	for(k=0; k<=p; k++){
		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;
}