Cod sursa(job #462865)

Utilizator Ha11owedVa rog deactivati contul Ha11owed Data 13 iunie 2010 20:19:36
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>

#define SIZE 16
int a[SIZE][SIZE], f[SIZE];
int n, m, s;

void suma() {
	int i, j, scol, suma = 0;
	for(j=0; j<m; j++) {
		scol = 0;
		for(i=0; i<n; i++) {
			scol += f[i]*a[i][j];
		}
		if(scol > 0)
			suma += scol;
		else
			suma -= scol;
	}
	if(suma > s)
		s = suma;
}

void back(int lin) {
	if(lin == n)
		suma();
	else {
		f[lin] = -1;
		back(lin+1);
		f[lin] = 1;
		back(lin+1);
	}
}

int main(int argc, char **argv) {
	int i, j;
	FILE *f = fopen("flip.in", "r");
	if(f == NULL) { fclose(f); printf("eroare la citire!\n"); return -1; };
	fscanf(f, "%d", &n);
	fscanf(f, "%d", &m);
	for(i=0; i<n; i++)
		for(j=0; j<m; j++)
			fscanf(f, "%d", &a[i][j]);
	fclose(f);
	
	back(0);
	
	f = fopen("flip.out", "w");
	fprintf(f, "%d\n", s);
	fclose(f);
	
	return 0;
}