Cod sursa(job #1852140)

Utilizator caesar3Szabo Andrei caesar3 Data 20 ianuarie 2017 16:28:41
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
#define BIT(k) (1<<(k))
#define max(a,b) (a>b?a:b)	

int n1, nc;
int mat[20][20];
int scol[20], sc, smax = -1000000000;

int main()
{
	int i, j, c;
	freopen("flip.in" , "r", stdin );
	freopen("flip.out", "w", stdout);
	scanf("%d%d", &n1, &nc);
	for(i = 0; i < n1; i++)
	{
		for(j = 0; j < nc; j++)
		{
			scanf("%d", &mat[i][j]);
		}
	}
	for (c = 0; c < BIT(n1); c++)
	{
		sc = 0;
		for(j = 0; j < nc; j++)
		{
			scol[j] = 0;
			for(i = 0; i < n1; i++)
			{
				if((c & BIT(i)) != 0)
				{
					sc -= mat[i][j];
					scol[j] -= mat[i][j];
				}
				else 
				{
					sc += mat[i][j];
					scol[j] += mat[i][j];
				}
			}
		}
		for(j = 0; j < nc; j++)
		{
			if(scol[j] < 0)
				sc -= 2 * scol[j];
		}
		smax = max(smax, sc);
	}
	printf("%d", smax);
	return 0;
}