Cod sursa(job #2450501)

Utilizator OlteanuAlexandru67Olteanu Alexandru OlteanuAlexandru67 Data 23 august 2019 15:47:10
Problema Jocul Flip Scor 100
Compilator cpp-32 Status done
Runda Arhiva de probleme Marime 1.47 kb

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll const mod=1000000007;
ll const md=998244353;
ll mypowr(ll a,ll b) {ll res=1;a%=mod; assert(b>=0);
for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
ll mypow(ll a,ll b) {ll res=1;assert(b>=0);
for(;b;b>>=1){if(b&1)res=res*a;a=a*a;}return res;}
ifstream in("flip.in");
ofstream out("flip.out");
#define mp make_pair
#define pb push_back
#define pf push_front
#define fi first
#define se second

int a[20][20],b[20][20];

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cout<<fixed<<setprecision(15);

    ll n,m;
    in>>n>>m;
    for(int i=1;i<=n;++i){
        for(int j=1;j<=m;++j){
            in>>a[i][j];
            b[i][j]=a[i][j];
        }
    }
    ll u=(1<<n),cnt=-9e15;
    for(int i=0;i<u;++i){
        ll sum=1;
        ll t=i;
        while(t){
            if(t%2){
                for(int j=1;j<=m;++j){
                    b[sum][j]=-b[sum][j];
                }
            }
            t/=2;
            ++sum;
        }
        sum=0;
        for(int i=1;i<=m;++i){
            ll sum2=0;
            for(int j=1;j<=n;++j){
                sum2+=b[j][i];
            }
            sum+=abs(sum2);
        }
        cnt=max(cnt,sum);
        for(int i=1;i<=n;++i){
            for(int j=1;j<=m;++j){
                b[i][j]=a[i][j];
            }
        }
    }
    out<<cnt<<'\n';







    return 0;
}