Cod sursa(job #1263595)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 14 noiembrie 2014 22:29:54
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>
#include <stdlib.h>

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

  int n, m; fscanf (in, "%d%d", &n, &m);

  int ma[17][17];

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

  int k; int max = 0;
  int power = 1 << (n + 1);
  for (k = 0; k <= power; ++k)
    {
      for (i = 1; i <= n; ++i)
	if ((k & (1 << i)))
	  {
	    for (j = 1; j <= m; ++j)
	      ma[i][j] *= -1;
	  }

      int maxim = 0;
      for (i = 1; i <= m; ++i)
	{
	  int suma = 0;
	  for (j = 1; j <= n; ++j)
	    suma += ma[j][i];
	  
	  if (suma < 0)
	    maxim += suma * (-1);
	  else
	    maxim += suma;
	}

      if (max < maxim)
	max = maxim;
	  
      for (i = 1; i <= n; ++i)
	if ((k & (1 << i)))
	  for (j = 1; j <= m; ++j)
	    ma[i][j] *= -1;	  
    }

  printf ("%d", max);

  fclose (in);
  fclose (out);

  return 0;
}