Cod sursa(job #798845)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 17 octombrie 2012 14:08:58
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
using namespace std;

int a[17][17],j,n,m;
long long i,p,k,mx;

void swap_row(int x)
{
	int i;
	for (i=1;i<=m;i++)
		a[x][i]*=-1;
}

void swap_col(int x)
{
	int i;
	for (i=1;i<=n;i++)
		a[i][x]*=-1;
}

long long sum()
{
	int i,j;
	long long s=0;
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
			s+=a[i][j];
	return s;
}

int main()
{
	ifstream f("flip.in");
	ofstream g("flip.out");
	f >> n >> m;
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
			f >> a[i][j];
	k=1 << n+m-1;
	for (i=0;i<=k;i++)
	{
		for (j=0;j<n+m;j++)
			if ((i & (1 << j)) > 0)
				if (j<n)
					swap_row(j+1);
				else swap_col(j-n+1);
		p=sum();
		if (p>mx)
			mx=p;
		for (j=0;j<n+m;j++)
			if ((i & (1 << j)) > 0)
				if (j<n)
					swap_row(j+1);
				else swap_col(j-n+1);
	}
	g << mx;
	return 0;
}