Cod sursa(job #1013873)

Utilizator Mihai96Saru Mihai Mihai96 Data 21 octombrie 2013 20:46:37
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>

using namespace std;

struct Tabla{
	int n;
	int m;
	int a[16][16];
};

int rand[16];
int sumaMaxima;

void citireDate(Tabla &tabla){
	ifstream fin("flip.in");
	fin>>tabla.n>>tabla.m;
	for(int i = 0; i < tabla.n;i++){
		for(int j = 0;j < tabla.m;j++){
			fin>>tabla.a[i][j];
		}
	}
	fin.close();
}

void scriereDate(){
	ofstream fout("flip.out");
	fout<<sumaMaxima;
	fout.close();
}

void prelSol(Tabla &tabla){
	int suma = 0;
	int sumaRand;
	for(int i = 0;i < tabla.n;i++){
		sumaRand = 0;
		for(int j = 0;j < tabla.m;j++){
			sumaRand += rand[j] * tabla.a[i][j];
		}
		if(sumaRand > -1*sumaRand){
			suma += sumaRand;
		}else{
			suma -= sumaRand;
		}
	}
	
	if(suma > sumaMaxima){
		sumaMaxima = suma;
	}
}

void backRanduri(int k, int &n, Tabla &tabla){
	if(k == n){
		prelSol(tabla);
	}else{
		for(int i = -1;i <= 1;i+=2){
			rand[k] = i;
			backRanduri(k+1, n, tabla);
		}
	}
}

int main(int argc, char *argv[]){
	Tabla tabla;
	citireDate(tabla);
	backRanduri(0, tabla.n, tabla);
	scriereDate();
	return 0;
}