Cod sursa(job #2434391)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 1 iulie 2019 17:47:10
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
// ConsoleApplication1.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <cstdio>
#include <memory>
#include <string>

using namespace std;

int A[16][16];
int n, m;

void read()
{
	cin >> n >> m;
	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < m; ++j)
			cin >> A[i][j];
	}
}

int calcSum(int x, int y)
{
	int sum = 0;
	for (int i = 0; i < n; ++i)
	{
		int flipLine = ((1 << i) & x) ? (-1) : 1;
		for (int j = 0; j < m; ++j)
		{
			int flipColl = ((1 << j) & y) ? (-1) : 1;
			sum += A[i][j] * flipLine * flipColl;
		}
	}
	return sum;
}

int maxSum()
{
	int maxim = -(1 << 30);
	for(int i = 0; i < 1 << (n - 1); ++i)
		for (int j = 0; j < 1 << (m -1); ++j)
		{
			int candidate = calcSum(i, j);
			if (candidate > maxim)
				maxim = candidate;
		}
	return maxim;
}


int main()
{
	freopen("flip.in", "r", stdin);
	freopen("flip.out", "w", stdout);

	read();
	cout << maxSum();

	return 0;
}