Cod sursa(job #2051541)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 29 octombrie 2017 10:31:11
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 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 = -1000000 , s,Sl[Dim] , Sc[Dim];
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] , s += A[i][j];
for(int i = 1; i <= n; i++)
	for(int j = 1; j <= m; j++) 
		Sl[i] += A[i][j];
for(int j = 1; j <= m; j++)
	for(int i = 1; i <= n; i++) 
		Sc[j] += A[i][j];	
back();
fout << ma;
 }
 
 void  back() {
	 ma  = max(s, ma);
	 for(int i = 1; i <= n; i++)
			if(!UseL[i]) {
				int aux = s;
				s += -2* Sl[i];
				UseL[i] = true;
				back();
				s = aux;
				UseL[i] = false;
				} 
	for(int j = 1; j <= m; j++)
			if(!UseC[j]) {
				int aux = s;
				s += -2* Sc[j];
				UseC[j] = true;
				back();
				s = aux;
				UseC[j] = false;
				} 
}