Cod sursa(job #265766)

Utilizator Sorin_IonutBYSorynyos Sorin_Ionut Data 24 februarie 2009 13:56:15
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb

#include <stdio.h>

int n, m, semn_l[16]; long int mat[16][16], max = -900000000;
FILE *fin, *fout;

void readInput();
void bkt(int k);

int main(){
	fin = fopen("flip.in", "r"); fout = fopen("flip.out", "w");
	readInput();
	bkt(0);
	fprintf(fout, "%ld\n", max);
	fclose(fin); fclose(fout);
	return 0;
}

void readInput(){
	int i, j;
	fscanf(fin, "%d %d", &n, &m);
	for ( i = 0; i < n; i++ ){
		for ( j = 0; j < m; j++ )
			fscanf(fin, "%ld", &mat[i][j]);
		semn_l[i]=1;
	}
}


void bkt(int k){
	long int suma, sumat; int i, j;
	if( k == m ){
		suma = 0;
		for ( i = 0; i < n; i++ ){
			for ( sumat = j = 0; j < m; j++ )
				sumat += semn_l[j] * mat[i][j];
			suma += sumat<-sumat ? -sumat:sumat;
		}
		if ( suma > max )
			max = suma;
		return;
	}
	semn_l[k] = 1;  bkt(k+1);
	semn_l[k] = -1; bkt(k+1);
}