Cod sursa(job #280045)

Utilizator alexandru92alexandru alexandru92 Data 13 martie 2009 10:21:51
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdlib.h>
#include<stdio.h>
int n,m,a[20][20],b[20][20],v[20],SMax;
void flip(int k)
   {
    if(k==m+1)
      {int i,j,s=0,s1,s2;
       for(i=1;i<=m;++i)
           for(j=1;j<=n;++j) b[j][i]=a[j][i]*v[i];
       for(i=1;i<=n;++i)
          {s1=s2=0;
           for(j=1;j<=m;++j) s1+=b[i][j],s2+=b[i][j]*-1;
           s+=s1>s2?s1:s2;
           }
       if(s>SMax) SMax=s;
      }else {
              v[k]=1;
              flip(k+1);
              v[k]=-1;
              flip(k+1);
             }
   }
int main()
  {
   freopen("flip.in","rt",stdin);
   freopen("flip.out","wt",stdout);
   scanf("%d %d",&n,&m);
   for(int i=1;i<=n;++i)
      for(int j=1;j<=m;++j) scanf("%d",&a[i][j]);
   flip(1);
   printf("%d\n",SMax);
   //system("PAUSE");
   return 0;
  }