Cod sursa(job #1021483)

Utilizator ioanapopaPopa Ioana ioanapopa Data 3 noiembrie 2013 21:26:50
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>
using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

class Flip
{
	int n, m, **matrix, *mark, sumFinal;
public:
	Flip()
	{
		f >> n >> m;
		matrix = new int*[n];
		for (int i = 0; i < n; i++)
			matrix[i] = new int[m];
		mark = new int[n];
		for (int i = 0; i < n; i++)
			for (int j = 0; j < m; j++)
				f >> matrix[i][j];
	}

	int sum()
	{
		int sum = 0, sumAux;
		for (int j = 0; j < m; j++)
		{
			sumAux = 0;
			for (int i = 0; i < n; i++)
				sumAux += (matrix[i][j] * mark[i]);
			if (sumAux < 0)
				sumAux *= -1;
			sum += sumAux;
		}
		return sum;
	}

	void back(int k)
	{
		int sumAux2;
		if (k == n)
		{
			sumAux2 = sum();
			if (sumAux2 > sumFinal)
				sumFinal = sumAux2;
		}
		else
		{
			mark[k] = -1;
			back(k + 1);
			mark[k] = 1;
			back(k + 1);
		}
	}
	void solve()
	{
		back(0);
		g << sumFinal;
	}
};

int main()
{
	Flip flip;
	flip.solve();
	return 0;
}