Cod sursa(job #3185584)

Utilizator BreabanDanielBreaban Daniel-Vasile BreabanDaniel Data 19 decembrie 2023 18:05:58
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>

using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
long long int n,m;
long long int a[19],mat[19][19],mask,doi[18],sumlin[19],total,maxim=-1000000000,aux;
int main()
{
    doi[0]=1;
    for(int i=1;i<=16;i++)
        doi[i]=2*doi[i-1];
    fin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            fin>>mat[i][j];
            sumlin[i]+=mat[i][j];
            total+=mat[i][j];
        }
    }
    for(int mask=0;mask<=doi[n-1];mask++)
    {
        aux=total;
        for(int x=0;x<n;x++)
        {
            if(mask&(1<<x))
                aux=aux-sumlin[x+1]+sumlin[x+1]*-1;
        }
        for(int j=1;j<=m;j++)
        {
            long long int auxs=0;
            for(int i=1;i<=n;i++)
                if(mask&(1<<(i-1)))
                {
                    auxs+=-1*mat[i][j];
                }
                else
                {
                    auxs+=mat[i][j];
                }
            if(auxs<0)
                aux=aux-auxs+(-1)*auxs;

        }
        if(maxim<aux)
            maxim=aux;
    }
    fout<<maxim;
    return 0;
}