Cod sursa(job #596733)

Utilizator stefanzzzStefan Popa stefanzzz Data 18 iunie 2011 18:05:30
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream.h>
#include <math.h>
ifstream f("flip.in");
ofstream g("flip.out");

long a[17][17],m,n,i,j,scol[17],scol2[17],v[17],s,max=-2000000;

void citire();
void back(int x);
void flip();

main(){
	citire();
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++)
			scol[i]+=a[j][i];}
	for(i=1;i<=n;i++)
		scol2[i]=scol[i];
	back(0);
	g<<max;
}

void citire(){
	f>>m>>n;
	for(i=1;i<=m;i++){
		for(j=1;j<=n;j++)
			f>>a[i][j];}}
	
void back(int x){
	if(x==m)
		flip();
	else{
		back(x+1);
		v[x+1]=1;
		back(x+1);
		v[x+1]=0;}}	
		
		
void flip(){
	for(i=1;i<=m;i++){
		if(v[i]){
			for(j=1;j<=n;j++)
				scol2[j]-=2*a[i][j];}}
	for(i=1;i<=n;i++)
		s+=abs(scol2[i]);
	if(s>max)
		max=s;
	s=0;
	for(i=1;i<=n;i++)
		scol2[i]=scol[i];
}