Cod sursa(job #1631765)

Utilizator on_a_mission_without_permissionUPB Bolohan Dinu Rotaru on_a_mission_without_permission Data 5 martie 2016 18:43:19
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
long a[20][20], smax;
int n, m;
void citire(){
	FILE *f = fopen("flip.in", "r");
	fscanf(f, "%d%d", &n, &m);
	int i,j;
	for(i = 0; i < n; i++)
		for( j = 0; j < m; j++)
			fscanf(f, "%ld", &(a[i][j]) );
	fclose(f);
}
void facesuma(){
	int i,j;
	long suma;
	suma = 0;
	for( i = 0; i < n; i++)
		for( j = 0; j < m; j++)
			suma += a[i][j];
	if( smax < suma)
		smax = suma;
}
void schimbalinie(int linie){
	int j;
	for( j = 0; j < m; j++)
		a[linie][j] = -a[linie][j];
}
void schimbacol(int col){
	int i;
	for( i = 0; i < n; i++)
		a[i][col] = -a[i][col];
}
void backtracking(int k){
	if( k == n + m){
		facesuma();
		return;
	}
	backtracking(k + 1);
	if( k < n){
		schimbalinie(k);
	}
	else
		schimbacol(k - n);
	backtracking(k + 1);
}
int main(){
	citire();
	smax = 0;
	backtracking(0);
	FILE *f = fopen("flip.out", "w");
	fprintf(f, "%ld", smax);
	fclose(f);
	return 0;
}