Cod sursa(job #134907)

Utilizator allynaAlina S allyna Data 12 februarie 2008 17:13:23
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
   #include<stdio.h>  
   ifstream in("flip.in");
   ofstream out("flip.out")
   int n,m,a[20][20],b[20][20];  
   int main()  
   {  
    int best=-1,i,j,l,c,sum,lim,s;  
     in>>n>>m  
     for(i=1;i<=n;i++)  
       for(j=1;j<=m;j++)  
        in>>a[i][j]);  
    in.close();
    lim=1<<n;  
     for(i=0;i<lim;i++)  
     {  
       for(l=1;l<=n;l++)  
         if(1<<(l-1)&i) for(j=1;j<=m;j++)  
                  b[l][j]=-a[l][j];  
         else for(j=1;j<=m;j++)  
            b[l][j]=a[l][j];  
         sum=0;  
         for(j=1;j<=m;j++)  
         {  
       s=0;  
       for(l=1;l<=n;l++)  
         s+=b[l][j];  
       if(s<0) s=-s;  
       sum+=s;  
         }  
         if(sum>best) best=sum;  
   }  
     lim=1<<m;  
     for(i=0;i<lim;i++)  
     {  
      for(c=1;c<=m;c++)  
        if(1<<(c-1)&i) for(j=1;j<=n;j++)  
                  b[j][c]=-a[j][c];  
       else for(j=1;j<=n;j++)  
           b[j][c]=a[j][c];  
       sum=0;  
     for(j=1;j<=n;j++)  
      {  
       s=0;  
        for(c=1;c<=m;c++)  
      s+=b[j][c];  
      if(s<0) s=-s;  
         sum+=s;  
       }  
       if(sum>best) best=sum;  
     }  
     out<<best;  
     return 0;  
   }