Cod sursa(job #507779)

Utilizator radu.portaseRadu Portase radu.portase Data 6 decembrie 2010 19:27:16
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#define IN_FILE "flip.in"
#define OUT_FILE "flip.out"
using namespace std;
fstream fin (IN_FILE, ios::in);
fstream fout (OUT_FILE, ios::out);

long N,M,A[20][20],S[20],rez,i,j;

long genl (long);// functia de backtracking linii
long genc (long);// functia de backtracking coloane
int main ()
{
    fin>>N>>M;
    for(i=1;i<=N;i++)
      for(j=1;j<=M;j++)
        fin>>A[i][j];
    if(N<M) genl(0);
    else genc(0);
    fout<<rez;
    return 0;
}

long genl (long k)
{
     if(k==N)
     {
     int sum=0,i,j;
     for (i=1;i<=N;i++)
         for(j=1;j<=M;j++)
           sum+=A[i][j]*S[i];
     if(sum>rez) rez=sum;        
     }    
     else 
          {
          k++;
          S[k]=-1;
          genl(k);
          S[k]=1;
          genl (k);
          }
}

long genc (long k)
{
     if(k==M)
     {
     int sum=0,i,j;
     for (i=1;i<=N;i++)
         for(j=1;j<=M;j++)
           sum+=A[i][j]*S[j];
     if(sum>rez) rez=sum;        
     }    
     else 
          {
          k++;
          S[k]=-1;
          genc(k);
          S[k]=1;
          genc (k);
          }
}