Cod sursa(job #2198013)

Utilizator Constantin.Dragancea Constantin Constantin. Data 23 aprilie 2018 12:46:19
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int n, m, a[25][25], b[25][25];
ll k, ans = -(1LL<<60);

ll get(){
	ll rs = 0;
	for (int i=1; i<=n; i++){
		for (int j=1; j<=m; j++) rs += b[i][j], b[i][j] = a[i][j];
	}
	return rs;
}

int main(){
	ifstream cin ("flip.in");
	ofstream cout ("flip.out");
	cin >> n >> m;
	k = n + m;
	for (int i=1; i<=n; i++){
		for (int j=1; j<=m; j++) cin >> a[i][j], b[i][j] = a[i][j];
	}
	ans = get();
	for (long long i=1; i<(1LL<<k); i++){
		for (int j=0; j<k; j++){
			if ((1LL<<j) & i){
				if (j+1 <= n){
					for (int c=1; c<=m; c++) b[j+1][c] *= -1;
				}
				else{
					for (int c=1; c<=n; c++) b[c][j+1-n] *= -1;
				}
			}
		}
		ans = max(ans, get());
	}
	cout << ans;
	return 0;
}