Cod sursa(job #2051532)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 29 octombrie 2017 09:53:54
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
void Back();
const int Dim = 17 ;
int A[Dim][Dim],n,m , ma =-100000000  ;
bool UseL[Dim]  = {0},UseC[Dim] = {0};

int main() {
	fin >> n >> m;
	for(int i = 1; i <= n; i++)
		for(int j = 1; j <= m; j++)
			fin >> A[i][j];
	Back();
	fout << ma;
}

int suma()  {
int s  = 0;
for(int i = 1; i <= n; i++)
	for(int j = 1; j <= n; j++)
		s += A[i][j];
return s;
}

void Back() {	
		ma = max(ma,suma());
	for(int i = 1; i <= n; i++) 
		if(UseL[i] == false)	{
			for(int j = 1; j <= m; j++)
				A[i][j] *= -1;
			UseL[i] = true;
			Back();
			UseL[i] = false;
			for(int j = 1; j <= m; j++)
				A[i][j] *= -1;
			}
	for(int j = 1; j <= m; j++) 
		if(UseC[j] == false) {
			for(int i = 1; i <= n; i++)
				A[i][j] *= -1;
			UseC[j] = true;
			Back();
			UseC[j] = false;
			for(int i = 1; i <= n; i++)
				A[i][j] *= -1;
			}
		
		
}