Cod sursa(job #1873477)

Utilizator ButmalaiDanButmalai Dan ButmalaiDan Data 9 februarie 2017 09:04:17
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<bits/stdc++.h>
using namespace std;

int n, m, a[20][20], b[20], auxa[20][20], sum_ans;

void gen(long long n, long long length)
{
	for(int j = 0; j < length; j++) b[j] = n%2, n/=2;
}
int main()
{
	ifstream cin("flip.in");
	ofstream cout("flip.out");
	cin >> n >> m;
	for (int i = 0 ; i < n; i++) for (int j = 0 ; j < m; j++) {cin >> a[i][j];auxa[i][j] = a[i][j];}
	for (int k = 0; k < 1<<m; k++)
	{
		gen(k, m);
		for(int j = 0; j < m; j++) 
			if(b[j]){
				for (int z = 0; z < n; z++)
				{
					auxa[z][j] *=-1;
				}
			}
		int sum = 0;
		for (int i = 0 ; i < n; i++)
		{
			int aux_sum = 0;
			for(int j = 0; j < m; j++)
			{
				aux_sum += auxa[i][j];
			}
			if(aux_sum < 0) sum += -aux_sum;
			else sum += aux_sum;
		}
		sum_ans = max(sum_ans, sum);
		for (int i = 0 ; i < n; i++) for (int j = 0 ; j < m; j++) {auxa[i][j] = a[i][j];}
	}
	cout << sum_ans;
}