Cod sursa(job #1668532)

Utilizator anav23Ana Vasiliu anav23 Data 29 martie 2016 20:57:43
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
using namespace std;

struct data {
    int a[20][20];
};

int n,m;
long long int sumaMax;

void getSol(int level,data date) {
    if(level==n) {
        long long int suma=0;
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                suma+=date.a[i][j];
        if(suma>sumaMax)
            sumaMax=suma;
        return;
    }
    for(int j=0;j<m;j++) {
        getSol(level+1,date);
        for(int i=0;i<n;i++)
            date.a[i][j]*=-1;
        getSol(level+1,date);
    }
    for(int j=0;j<m;j++)
        date.a[level][j]*=-1;
    for(int j=0;j<m;j++) {
        getSol(level+1,date);
        for(int i=0;i<n;i++)
            date.a[i][j]*=-1;
        getSol(level+1,date);
    }
}

int main()
{
    ifstream fin("flip.in");
    ofstream fout("flip.out");
    data date;
    fin>>n>>m;
    for(int i=0;i<n;i++)
    for(int j=0;j<m;j++)
        fin>>date.a[i][j];
    getSol(0,date);
    fout<<sumaMax;
    return 0;
}