Cod sursa(job #2606273)

Utilizator drknss_Hehe hehe drknss_ Data 27 aprilie 2020 13:44:27
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.34 kb
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(a) (a).begin(), (a).end()
#define forn(i,a,b) for (int i = a; i <= b; i++)
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define rc(s) return cout<<s,0
#define rcc(s) cout<<s,exit(0)
#define er erase
#define in insert
#define pi pair <int, int>
# define sz(x) (int)((x).size())
#define int long long

const int dx[] = {0, 1, 0, -1};
const int dy[] = {1, 0, -1, 0};

const ll inf = 0x3f3f3f3f3f3f3f;
const ll mod = 1999999973;
const int N = 10 + 11;

int a[N][N],n,m;


int32_t main(){
ios_base::sync_with_stdio(0); cin.tie(0); cerr.tie(0); cout.tie(0);

 FILE* in = fopen("flip.in", "r");
 FILE* out = fopen("flip.out", "w");

    fscanf(in, "%d %d", &n, &m);

    forn(i,1,n){
        forn(j,1,m){
            fscanf(in, "%d", &a[i][j]);
        }
    }

    int ans = -2e18;

    forn(i,0,(1<<n)){

        int sum = 0;

        forn(j,1,m){
            int poz = 0, neg = 0;
            forn(k,1,n){

                int x = a[k][j];

                if((i&(1<<k)))x = -x;

                if(x<0)neg += -x;else poz += x;

            }

            sum += max(poz,neg) - min(poz,neg);

        }


        ans = max(ans , sum);

    }

    fprintf(out, "%d", ans);


return 0;
}