Cod sursa(job #2863030)

Utilizator CristianPavelCristian Pavel CristianPavel Data 6 martie 2022 11:33:02
Problema Jocul Flip Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int n,m,a[16][16],s=0,s2;
int x[10];
void flip_j(int j)
{
    for(int i=1;i<=n;i++)
        a[i][j]*=-1;
}
void flip_i(int i)
{
    for(int j=1;j<=m;j++)
        a[i][j]*=-1;
}
int solutie(int k)
{
    return k==m;
}
int suma(int i)
{
    int s=0;
    for(int j=1;j<=m;j++)
        s+=a[i][j];
    return s;
}
void backtr(int k)
{
    if(k<=m){
        for(int y=1;y<=2;y++)
        {   
            flip_j(k);
            for(int i=1;i<=n;i++)
                if(suma(i)<0) flip_i(i);
            s2=0;
            for(int i=1;i<=n;i++)
                s2+=suma(i);
            if(s<s2) s=s2;
            backtr(k+1);
        }
    }
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++)
        cin>>a[i][j];
    backtr(1);
    cout<<s;
    cin.close();
    cout.close();
    return 0;

}