Cod sursa(job #2863036)

Utilizator CristianPavelCristian Pavel CristianPavel Data 6 martie 2022 11:38:36
Problema Jocul Flip Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 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];
int b[16][16];
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++)
        b[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+=b[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++)
            for(int j=1;j<=m;j++)
                b[i][j]=a[i][j];
            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;

}