Cod sursa(job #2076593)

Utilizator AndreiG23Ghiurcuta Andrei AndreiG23 Data 26 noiembrie 2017 20:21:43
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m,a[17][17],s,sol[17];
void sumamax()
{
    int sm=0;
    for(int i=0;i<n;i++)
    {
        int sl=0;
        for(int j=0;j<m;j++)
            sl+=a[i][j];
        if(sl<0)
            sm=sm-sl;
        else sm=sm+sl;
    }
    if(sm>s)
        s=sm;
}
void schimbcoloana(int c)
{
    for(int i=0;i<n;i++)
        a[i][c]=-a[i][c];
}
void BK(int k)
{
    int start=1;
    if(k!=0)
        start=sol[k-1]+1;
    for(int i=start;i<=m;i++)
    {
        sol[k]=i;
        schimbcoloana(i-1);
        sumamax();
        BK(k+1);
        schimbcoloana(i-1);
    }

}
int main()
{
    fin>>n>>m;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            fin>>a[i][j];
    BK(0);
    fout<<s;
    return 0;
}