Cod sursa(job #1668557)

Utilizator anav23Ana Vasiliu anav23 Data 29 martie 2016 21:15:08
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
using namespace std;

int n,m,a[20][20];
long long int sumaMax;

void flip(bool linie, int level) {
    if(!linie&&level>m) {
        int suma=0;
        for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            suma+=a[i][j]*a[i][0]*a[0][j];
        if(sumaMax<suma)
            sumaMax=suma;
        return;
    }
    if(linie&&level>n) {
        linie=false;
        flip(false,1);
        return;
    }
    if(linie) {
        a[level][0]=1;
        flip(true,level+1);
        a[level][0]=-1;
        flip(true,level+1);
    }
    else {
        a[0][level]=1;
        flip(false,level+1);
        a[0][level]=-1;
        flip(false,level+1);
    }
}

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