Cod sursa(job #2562069)

Utilizator arckerDolteanu Gabriel arcker Data 29 februarie 2020 11:57:54
Problema Jocul Flip Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;

int n, m, v[20][20], ans = INT_MIN, sum, lin[20], col[20], T;

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

	cin >> n >> m;
	for(int i = 1; i <= n; ++i)
		for(int j = 1; j <= m; ++j)
			cin >> v[i][j];
	int c1 = 1 << n, c2 = 1 << m;
	
	for(int i = 0; i < c1; ++i){
		memset(lin, 0, sizeof lin);
		for(int i2 = 0; i2 < n; ++i2)
			if((i >> i2) & 1)
				lin[i2 + 1] = 1;
		for(int j = 0; j < c2; ++j){
			memset(col, 0, sizeof col);
			for(int j2 = 0; j2 < m; ++j2)
				if((j >> j2) & 1)
					col[j2 + 1] = 1;
			sum = 0;
			for(int x = 1; x <= n; ++x){
				for(int y = 1; y <= m; ++y){
					T = v[x][y];
					if(lin[x]) T = -T;
					if(col[y]) T = -T;
					sum += T;
				}
			}
			ans = max(ans, sum);
		}
	}
	cout << ans << '\n';
}