Cod sursa(job #382531)

Utilizator annonymusCornescu Andrey annonymus Data 13 ianuarie 2010 20:41:52
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>

int v[17][17], n, m;
int sumaMax = 0;

FILE *f=fopen("flip.in","r");
FILE *g=fopen("flip.out","w"); 

void citire()
{
	fscanf(f, "%d%d", &n, &m);

	for (int i=1;i<=n;++i)
		for (int j=1;j<=m;++j)
			fscanf(f,"%d",&v[i][j]);
}

void suma()
{
	int suma, sumaV = 0;

	for(int j=1; j <= m; j++)
	{
		suma = 0;
		for(int i=1; i <= n; i++)
			suma += v[i][j];

		if(suma > 0)
			sumaV += suma;
		else
			sumaV -= suma;
	}

	if(sumaV > sumaMax)
		sumaMax = sumaV;
}

void back(int k)
{
	if(k > n) 
		return;

	suma();
	back(k + 1);
		
	for(int i=1; i <= m; i++)
		v[k][i] = -v[k][i];

	suma();
	back(k + 1);
}

int main()
{
	citire();
	back(1);

	fprintf(g, "%d", sumaMax);
	
	fclose(f);
	fclose(g);

	return 0;
}