Cod sursa(job #53004)

Utilizator floringh06Florin Ghesu floringh06 Data 20 aprilie 2007 16:51:00
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
using namespace std;
#include<stdio.h>
#define nmax 18
#define infinit 100000000

FILE *fin=fopen("flip.in","r"),
     *fout=fopen("flip.out","w");
int a[nmax][nmax];

int main()
{

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

 int i,j;
 for (i=1; i<=m; i++)
  for (j=1; j<=n; j++)
   fscanf(fin,"%d",&a[i][j]);
 
 int sol,sum,x,scol;
 sol=-infinit;
 
 for (x=0; x<(1<<m); x++)
  {
   for (i=1; i<=m; i++)
    if ((1<<(i-1))&x)
     for (j=1; j<=n; j++)
      a[i][j]=-a[i][j];
   
   sum=0;
   
   for (j=1; j<=n; j++)
   {
    scol=0;
    for (i=1; i<=m; i++)
     scol+=a[i][j];
    if (scol>0) sum+=scol;
     else sum-=scol; 
   }   

   if (sum>sol) sol=sum;

   for (i=1; i<=m; i++)
    if ((1<<(i-1))&x)
     for (j=1; j<=n; j++)
      a[i][j]=-a[i][j];
  } 
fprintf(fout,"%d\n",sol);
fclose(fin);
fclose(fout);
return 0;
}