Cod sursa(job #1245574)

Utilizator dr_personalityEftime Andrei Horatiu dr_personality Data 19 octombrie 2014 15:11:14
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");

const int nmax = 17;
int n, m, mat[nmax][nmax], sum, rasp = -1000000000, scol[nmax][nmax];
bool semn;

int modul(int x)
{
	if(x<0)
		return -x;
	else
		return x;
}

int main(){
	int player_unu=0;

	in>>n>>m;
	for(int i = 0; i<n; i++)
	{
		for(int j = 0; j<m; j++)
		{
			in>>mat[i][j];
		}
	}

	for(int shp = 0; shp<(1<<n); shp++)
	{
		for(int i = 0; i<n; i++)
			for(int j = 0; j<m; j++)
				scol[i][j] = 0;
		sum = 0;

		for(int i = 0; i<n; i++)
		{
			if((shp & (1<<i))==(1<<i))
				semn = 1;
			else
				semn = 0;

			for(int j = 0; j<m; j++)
			{
				if(semn==1)
				{
					if(i==0)
						scol[i][j] = -mat[i][j];
					else
						scol[i][j] = scol[i - 1][j] - mat[i][j];
				}
				else
				{
					if(i==0)
						scol[i][j] = mat[i][j];
					else
						scol[i][j] = scol[i - 1][j] + mat[i][j];
				}
			}
		}

		for(int i = 0; i<m; i++)
			sum += modul(scol[n - 1][i]);

		if(sum>rasp)
			rasp = sum;
	}

	out<<rasp<<'\n';

	return player_unu;
}