Cod sursa(job #2028772)

Utilizator georgianamaximMaxim Georgiana georgianamaxim Data 28 septembrie 2017 17:09:11
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("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 back(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();
        back(k+1);
        schimbcoloana(i-1);
    }

}
int main()
{
    f>>n>>m;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            f>>a[i][j];
    back(0);
    g<<s;
    return 0;
}