Cod sursa(job #778201)

Utilizator frumushelRadu Lucian Andrei frumushel Data 14 august 2012 12:07:29
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include<stdio.h>
#include<iostream>
using namespace std;
long a[17][17], n, m, b[17][17], sum_total_max = -10000000;
int s[17];
void back(int k)
{
     int i,j;
     if(k==n+1)
     {

               for(i=1;i<=n;i++)
                   for(j=1;j<=m;j++)
                   b[i][j]=a[i][j] * s[i];
                   
               int sum_max = 0;
               for(j=1;j<=m;j++)
               {
                   int s=0;
                   for(i=1;i<=n;i++)
                      s+=b[i][j];
                   
                   s = s<0?-s:s;
                   
                   sum_max+=s;    
               }
               if(sum_max > sum_total_max)
                          sum_total_max = sum_max;
                   
     }
     else 
     {

          s[k] = 1;
          back(k+1);
          s[k] = -1;
          back(k+1);                 
   
     }
                    
}
int main()
{
    FILE *in = fopen("flip.in", "r");
    FILE *out = fopen("flip.out", "w");
    fscanf(in, "%d", &n);
    fscanf(in, "%d", &m);
    for(int i=1;i<=n;i++)
    {
            for(int j=1;j<=m;j++)
                    fscanf(in, "%d", &a[i][j]);        
    }
    
    back(1);
    fprintf(out, "%ld", sum_total_max);
    system("pause");

}