Cod sursa(job #346678)

Utilizator mihai_r2005Richard Mihai Andrei mihai_r2005 Data 9 septembrie 2009 00:26:58
Problema Jocul Flip Scor 40
Compilator c Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>

int x, y;
int a[16][16];
int max;

int i, j;
int l[16], c[16];

void recc(int);
void recl(int);
int suma();


int main()
{
	FILE *fi = fopen("flip.in", "r");
	FILE *fo = fopen("flip.out", "w");

	fscanf(fi,"%d %d", &x, &y);
	for (i = 0; i < x; i++)
		for (j = 0; j < y; j++)
			fscanf(fi, "%d", &a[i][j]);
	for (i = 0; i < 16; i++){
		l[i] = 1;
		c[i] = 1;
	}
	max = suma();
	recl(0);
	fprintf(fo, "%d", max);
	return 0;
}

void recl(int j)
{
	if (j < y){
		recl(j+1);
		l[j] = -1;
		recl(j+1);
		l[j] = 1;
	}
	else
		recc(0);
}

void recc(int i)
{
	int sum;
	if (i < x){
		recc(i+1);
		c[i] = -1;
		recc(i+1);
		c[i] = 1;
	}
	else{
		sum = suma();
		if (sum > max)
			max = sum;
	}
			
}

int suma()
{
	int i, j, sum=0;
	for (i = 0; i < x; i++)
		for (j = 0; j < y; j++)
			sum+=a[i][j]*l[j]*c[i];
	return sum;
}