Cod sursa(job #1873476)

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

long long n, m, a[20][20], b[20], rez_poz, sum_rez = -1<<30,auxa[20][20],sum_rez1 = -1<<30,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 (long long 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;
				}
			}
		long long sum = 0;
		for (int i = 0 ; i < n; i++)
		{
			long long 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;
}