Cod sursa(job #159477)

Utilizator FlorinC1996Florin C FlorinC1996 Data 14 martie 2008 10:22:28
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.52 kb
 #include<stdio.h>   
  
  
int main()   
{long i, j, p=1, sum, s, smax=0, t[20][20], x[20];   
 int k, l, n, m, y[20];   
 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("%ld", &t[i][j]);   
    
 p=(p<<n)-1;   
 for (i=1; i<=p; i++)   
   {for (j=1; j<=n; j++)    
      y[j]=i>>(j-1)& 1;   
       
       
    for (k=1; k<=m; k++)   
      {sum=0;   
       for (l=1; l<=n; l++)   
        if (y[l]==1) sum-=t[l][k];   
         else sum+=t[l][k];   
       if (sum<0) x[k]=-sum;   
       else x[k]=sum;    
      }   
    s=0;     
    for (k=1; k<=m; k++)   
      s=s+x[k];   
    if (s>smax) smax=s;   
   }   
 printf("%ld", smax);       
 return 0;   
}  
#include<stdio.h>


int main()
{long i, j, p=1, sum, s, smax=0, t[20][20], x[20];
 int k, l, n, m, y[20];
 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("%ld", &t[i][j]);
 
 p=(p<<n)-1;
 for (i=1; i<=p; i++)
   {for (j=1; j<=n; j++) 
      y[j]=i>>(j-1)& 1;
    
    
    for (k=1; k<=m; k++)
      {sum=0;
       for (l=1; l<=n; l++)
        if (y[l]==1) sum-=t[l][k];
         else sum+=t[l][k];
       if (sum<0) x[k]=-sum;
       else x[k]=sum; 
      }
    s=0;  
    for (k=1; k<=m; k++)
      s=s+x[k];
    if (s>smax) smax=s;
   }
 printf("%ld", smax);    
 return 0;
}