Cod sursa(job #526277)

Utilizator maritimCristian Lambru maritim Data 27 ianuarie 2011 22:06:36
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<iostream>
using namespace std;

long int A[17][17];
int n;
int m;
int B[38];
long int mar = -32000;

void citire(void)
{
     FILE *f = fopen("flip.in","r");
     
     fscanf(f,"%d %d",&n,&m);
     for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
           fscanf(f,"%d",&A[i][j]);
     
     fclose(f);
}

long long int calc(void)
{
    long long int S = 0;
    for(int i=1;i<=n;i++)
       for(int j=1;j<=m;j++)
          S += B[i]*B[n+j]*A[i][j];
    return S;
}

/*
void calculare2(int k)
{
     if(k == m+1)
     {
       if(calc()>mar) mar = calc();
     }
     else
     {
     A[0][k] = 1;
     calculare2(k+1);
     A[0][k] = -1;
     calculare2(k+1);
     }
}
*/

void calculare(int k)
{
    if(k == n+m+1)
    {
      if(calc()>mar) mar = calc();
    }
    else
    {
      B[k] = 1;
      calculare(k+1);
      B[k] = -1;
      calculare(k+1);
    }
}

int main()
{
    FILE *f = fopen("flip.out","w");
    
    citire();
    calculare(1);
    fprintf(f,"%ld",mar);
    
    fclose(f);
    return 0;
}