Cod sursa(job #57625)

Utilizator cretuMusina Rares cretu Data 2 mai 2007 18:37:10
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
#define MAX 17

using namespace std;

int a[MAX][MAX], x[MAX];
int m, n;
int smax = 0;

void Back(int k);

int main()
{
    int i, j;
    ifstream fin("flip.in");
    fin >> n >> m;    
    for (i = 1; i <= n; i++)   
        for (j = 1; j <= m; j++)
        {
            fin >> a[i][j];
            smax += a[i][j];
        }
    fin.close();
    
    Back(1);
    
    ofstream fout("flip.out");
    fout << smax;
    fout.close();
    
    return 0;
}

void Back(int k)
{
    for (int i = 0; i <= 1; i++)     
    {
        x[k] = i;
        if (k == m)
        {
            int j, k, t, s = 0;
            for (k = 1; k <= n; k++)          
            {
                t = 0;
                for (j = 1; j <= m; j++)
                {
                    if (x[j]) t += -a[k][j];
                    else      t += a[k][j];
                }
                if (t < 0) s += -t;
                else       s += t;
            }   
            if (s > smax) smax = s;
        }
        else if (k+1 <= m) Back(k+1);    
    }
}