Cod sursa(job #3193278)

Utilizator ReBeGhElRebegea Stefan ReBeGhEl Data 14 ianuarie 2024 13:35:04
Problema Jocul Flip Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>

using namespace std;

ifstream cin("flip.in");
ofstream cout("flip.out");

#define int long long

const int minS=-256e9;

int mat[20][20],n,m,maxs=minS-5;
bool col[20],lin[20];


void verificare()
{
    int s=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if((col[j]==1 && lin[i]==0) || (col[j]==0 && lin[i]==1))
            s+=(-1 *mat[i][j]);
            else
                s+=mat[i][j];
        }
    }
    maxs=max(maxs,s);
}

void swapcol(int poz)
{
    if(poz==m+1)
    {
        verificare();
        return ;
    }
    col[poz]=1-col[poz];
    swapcol(poz+1);
    col[poz]=1-col[poz];
    swapcol(poz+1);
}

void swapline(int poz)
{
    if(poz==n+1)
    {
        swapcol(1);
        return ;
    }
    lin[poz]=1-lin[poz];
    swapline(poz+1);
    lin[poz]=1-lin[poz];
    swapline(poz+1);
}

signed main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>mat[i][j];
    swapline(1);
    cout<<maxs;
    return 0;
}