Cod sursa(job #1986803)

Utilizator andrei_bicaAndrei Bica andrei_bica Data 28 mai 2017 22:24:04
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

#define MAXN 20
#define INF 1000000001

int A[MAXN][MAXN];
int sum[MAXN];
int N, M;

int main()
{
	ifstream in("flip.in");
	ofstream out("flip.out");

	in >> N >> M;
	for (int i = 0; i < N; ++i)
		for (int j = 0; j < M; ++j)
			in >> A[i][j];

	int answer = -INF;
	for (int mask = 0; mask < (1 << N); ++mask) {

		for (int j = 0; j < M; ++j)
			sum[j] = 0;

		for (int i = 0; i < N; ++i) {
			if (mask & (1 << i)) {
				for (int j = 0; j < M; ++j)
					sum[j] += A[i][j];
			} else {
				for (int j = 0; j < M; ++j)
					sum[j] -= A[i][j];
			}
		}

		int current = 0;
		for (int j = 0; j < M; ++j)
			if (sum[j] < 0)
				current -= sum[j];
			else
				current += sum[j];

		answer = max(answer, current);
	}

	out << answer << "\n";
}