Cod sursa(job #77717)

Utilizator GumiPipeNoName GumiPipe Data 14 august 2007 18:34:09
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <stdio.h>
#include <math.h>

int Tabla[16][16], Tabla2[16][16], n, m;

void Csere(int j)
{
  int i;

  for (i = 0; i < m; ++i)
    Tabla2[i][j] = Tabla[i][j] * (-1);
}

int Summa()
{
  int i, j;
  long long int r1, r = 0;

  for (i = 0; i < m; ++i)
  {
    r1 = 0;
    for (j = 0; j < n; ++j)
      r1 += Tabla2[j][i];
    r += abs(r1);
  }
  return(r);
}


int main()
{
  int i, j, k = 0, v[16], ok = 0;
  FILE *f;
  long long int r1 = 0, r = 0;

  f = fopen("flip.in", "rt");
  fscanf(f,"%d %d\n", &n, &m);
  for (i = 0; i < n; ++i)
    for (j = 0; j < m; ++j)
    {
      fscanf(f, "%d ", &Tabla[i][j]);
      Tabla2[i][j] = Tabla[i][j];
    }
  fclose(f);

  v[k] = -1;
  while (k > -1)
  {
    ok = 0;
    while (ok != 1 && v[k] < 1)
    {
      ok = 1;
      ++v[k];
    }

    if (ok)
      if (k == n - 1)
      {
	for (i = 0; i < k; ++i)
	  if (v[i] == 1)
	    Csere(i);
	r1 = Summa();
	if (r1 > r) r = r1;
      }
      else
      {
	++k;
	v[k] = -1;
      }
    else
      --k;
  }

  f = fopen("flip.out", "wr");
  fprintf(f, "%LLi", r);
  fclose(f);

  return(0);
}