Cod sursa(job #507799)

Utilizator radu.portaseRadu Portase radu.portase Data 6 decembrie 2010 20:20:19
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 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

int main ()
{
    fin>>N>>M;
    for(i=1;i<=N;i++)
      for(j=1;j<=M;j++)
        fin>>A[i][j];
    genl(0);
    fout<<rez;
    return 0;
}

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