Cod sursa(job #2626875)

Utilizator DoozCristian Bacaoanu Dooz Data 8 iunie 2020 19:22:09
Problema Jocul Flip Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>

int m, n;
int sumaTotala;
int matrice[16][16];
int semn[16];

int CheckSum() {
	int suma, total, i, k;
	total = 0;
	for(i=0; i<m; i++) {
		suma = 0;
		for(k=0; k<n; k++) suma += matrice[k][i]*semn[k];

		if(suma < 0) suma = -suma;

		total += suma;

	}

	return total;
}

void flipLine(int line) {
	int sum;

	if(line == n) {
		sum = CheckSum();
		if(sumaTotala < sum) sumaTotala = sum;
	}

	else {
		semn[line] = 1;
		flipLine(line+1);
		semn[line] = -1;
		flipLine(line+1);
	}
}

int main() {
	FILE *in, *out;
	int i, k;

	in = fopen("flip.in", "r");
	fscanf(in, "%d%d", &n, &m);

	for(i=0; i<n; i++) {
		for(k=0; k<m; k++) fscanf(in, "%d", &matrice[i][k]);
	}
	fclose(in);

	flipLine(0);


	out = fopen("flip.out", "w");
	fprintf(out, "%d", sumaTotala);
	fclose(out);


	return 0;
}