Cod sursa(job #357529)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 19 octombrie 2009 18:48:06
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<stdio.h>
int n,m,a[21][21],max,b[21][21];
int bit( int x,int y)
{
 int nr=(1<<y);
 if(x&nr)
      return 1;
  return 0;
}
int main ()
{
int i,j,z,smare,sum;
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
       for(j=1;j<=m;j++)
          {
             scanf("%d",&a[i][j]);
             b[i][j]=a[i][j];
          }
    for(i=0;i<(1<<n);i++)
        {
            for(j=0;j<=n-1;j++)
              if(bit(i,j))
              {
                for(z=1;z<=m;z++)
                    a[j+1][z]=-a[j+1][z];
              }
          
          smare = 0;
          for(j=1;j<=m;j++)
          {
             sum = 0;
             for(z=1;z<=n;z++)
                sum+=a[z][j];
             if(sum<0)
               sum=-sum;
             smare+=sum;
          }

          if(max<smare)
             max=smare;
          for(j=1;j<=n;j++)
            for(z=1;z<=m;z++)
                a[j][z]=b[j][z];
            
        }
        printf("%d",max);
    return 0;
}