Cod sursa(job #1251248)

Utilizator Mitsa3Neamt Mihai Mitsa3 Data 29 octombrie 2014 09:47:32
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
#define MAX 20
int a[MAX][MAX], x[MAX],n,m;
int smax;
void functie()
{
    int suma = 0;
    for(int i = 1; i<=m; i++)
        if(x[i] == 1)
            for(int j = 1; j<=n; j++)
                a[j][i]*=-1;
    for(int i = 1; i<=n; i++)
    {
        int s = 0;
        for(int j = 1; j<=m; j++)
        {
            s+=a[i][j];
        }
        suma += abs(s);
    }
    for(int i = 1; i<=m; i++)
        if(x[i] == 1)
            for(int j = 1; j<=n; j++)
                a[j][i]*=-1;
    smax = max(smax,suma);
}
void back(int poz)
{
    for(int i = 0; i<=1; i++)
    {
        x[poz] = i;
        if(poz == m)
            functie();
        else
            back(poz+1);
    }
}


int main()
{
    fin >> n >> m;
    for(int i = 1; i<=n; i++)
        for(int j = 1; j<=m; j++)
            fin >> a[i][j];
    back(1);
    fout << smax <<"\n";
}