Cod sursa(job #1011869)

Utilizator tuzi92Tuzes-Katai Tamas tuzi92 Data 17 octombrie 2013 17:57:57
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <cstdlib>

#define fr(i, a, b) for(int i=a; i<b; ++i)

int n, m;
int t[16][16];
int sorok[16];
int oszlopok[16];
int max;
int ossz;

void szamol()
{
	ossz = 0;
	fr(i,0,m) oszlopok[i] = 0;
    fr(i,0,n)
	{
		fr(j,0,m)
		{
			if (sorok[i])
				oszlopok[j] += t[i][j];
			else
				oszlopok[j] -= t[i][j];
		} 
	}
    fr(i,0,m)
	{
		if (oszlopok[i] > 0)
			ossz += oszlopok[i];
		else
			ossz -= oszlopok[i];
	}
    if (ossz > max) max = ossz;
}

void back(int a)
{
	if (a==n)
		szamol();
	else
	{
		sorok[a] = 0;
		back(a+1);
		sorok[a] = 1;
		back(a+1);
	}
}

int main()
{
	freopen("flip.in", "r", stdin);	
	scanf("%d%d", &n, &m);
	fr(i, 0, n) fr(j, 0, n) scanf("%d", &t[i][j]);
	freopen("flip.out", "w", stdout);

	back(0);
	printf("%d", max);

	return 0;
}