Cod sursa(job #3323544)

Utilizator AnaBanana2Ana Banana AnaBanana2 Data 18 noiembrie 2025 17:25:11
Problema Jocul Flip Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <bits/stdc++.h>
using namespace std;

int mat[25][25];
int mat1[25][25];
int main()
{
    ifstream cin ("flip.in");
    ofstream cout ("flip.out");
    int n, m;
    cin >> n >> m;
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
            cin >> mat[i][j], mat1[i][j]=mat[i][j];
    }
    int max1=0;
    for(int mask=0; mask<(1<<n); mask++)
    {
        for(int i=1; i<=n; i++)
        {
            int val=1;
            if(mask&(1<<(i-1)))
                val=-1;
            for(int j=1; j<=m; j++)
                mat[i][j]=mat1[i][j]*val;
        }
        for(int j=1; j<=m; j++)
        {
            int s1=0, s2=0;
            for(int i=1; i<=n; i++)
            {
                if(mat[i][j]>0)
                    s1+=mat[i][j];
                else
                    s2+=abs(mat[i][j]);
            }
            if(s1<s2)
            {
                for(int i=1; i<=n; i++)
                    mat[i][j]*=(-1);
            }
        }
        int sum=0;
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=m; j++)
                sum+=mat[i][j];
        }
        max1=max(max1, sum);
    }
    cout << max1;
    return 0;
}