Cod sursa(job #13325)

Utilizator moga_florianFlorian MOGA moga_florian Data 6 februarie 2007 11:16:25
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
using namespace std;
#include<fstream>
#include<stdio.h>
#define nmax 18

int a[nmax][nmax];

int main()
{
FILE *fin=fopen("flip.in","r"),
     *fout=fopen("flip.out","w");
int m,n;     
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 x,sum,sol=-1000000000,scol;
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;    
}