Cod sursa(job #3193269)

Utilizator ReBeGhElRebegea Stefan ReBeGhEl Data 14 ianuarie 2024 13:31:08
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>

using namespace std;

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

#define int long long

const int minS=-256e9;

int mat[16][16],n,m,maxs=minS-5;

void swapl(int ind)
{
    for(int i=1;i<=m;i++)
        mat[ind][i]*=(-1);
}
void swapc(int ind)
{
    for(int i=1;i<=n;i++)
        mat[i][ind]*=(-1);
}

void verificare()
{
    int s=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            s+=mat[i][j];
        }
    }
    maxs=max(maxs,s);
}

void swapcol(int poz)
{
    if(poz==m+1)
    {
        verificare();
        return ;
    }
    swapc(poz);
    swapcol(poz+1);
    swapc(poz);
    swapcol(poz+1);
}

void swapline(int poz)
{
    if(poz==n+1)
    {
        swapcol(1);
        return ;
    }
    swapl(poz);
    swapline(poz+1);
    swapl(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;
}