Cod sursa(job #257382)

Utilizator bixcabc abc bixc Data 13 februarie 2009 10:12:54
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>

int n,m,i,j,k,pd,b,si,sumC,sumMax;
int a[16][16];
int X[16][16];

int main(){
  FILE *f = fopen("flip.in","r");
  fscanf(f,"%d%d",&n,&m);
  for (i=0;i<n;i++)
    for (j=0;j<m;j++) {
      fscanf(f,"%d",&a[i][j]);
    }
  fclose(f);

  pd = (1<<m)-1;

  for (k=0;k<=pd;k++) {
    //scrierea in b 2 a lui k
    for (b=0;b<m;b++) {
      if ((k>>b)&1) {
	for (i=0;i<n;i++)
	  X[i][b] = -a[i][b];
      } else {
	for (i=0;i<n;i++)
	  X[i][b] = a[i][b];
      }
    }

    sumC = 0;
    for (i=0;i<n;i++) {
      si = 0;
      for (j=0;j<m;j++)
	si+=X[i][j];
      if (si>0) sumC += si;
      else sumC -= si;
    }

    if (sumC>sumMax)
      sumMax = sumC;

  }

  FILE *g = fopen("flip.out","w");
  fprintf(g,"%d",sumMax);
  fclose(g);

  return 0;
}