Cod sursa(job #2703391)

Utilizator Nitr0genVlad Ioan Nitr0gen Data 8 februarie 2021 15:09:14
Problema Jocul Flip Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;


int n, m, a[16][16], ans = 0;
bool sol[40];


int sum() {
	int sum = 0;

	for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			if((sol[i] || sol[j + n]) && !(sol[i] && sol[j + n])) {
				sum += -a[i][j];
			} else {
				sum += a[i][j];
			}
		}
	}

	return sum;
}


void backt(int pos) {
	if(pos == n + m) {
		ans = max(ans, sum());
		return;
	}

	for(int i = 0; i < 2; i++) {
		sol[pos] = i;
		backt(pos + 1);
	}
}


int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
	freopen("flip.in", "r", stdin);
	freopen("flip.out", "w", stdout);

	cin >> n >> m;

	sol[0] = 0;

	for(int i = 0; i < n; i++)
		for(int j = 0; j < m; j++)
			cin >> a[i][j];

	backt(0);

	cout << ans << '\n';
}