Cod sursa(job #2638098)

Utilizator loraclorac lorac lorac Data 26 iulie 2020 20:44:56
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
typedef long long ll;
ll v[20][20];
ll sc[20];
ll sl[20];
ll s[20];
int main()
{
    ll n,m;
    in>>n>>m;
    ll ans,tot=0;
    for(ll i=1;i<=n;++i)
    for(ll j=1;j<=m;++j)
    {
        in>>v[i][j];
        tot+=v[i][j];
        sl[i]+=v[i][j];
        sc[j]+=v[i][j];
    }
    ans=tot;
    for(ll k=0;k<(1<<n);++k)
    {
        ll sum=tot;
        ll mask=k;
        for(ll i=1;i<=m;++i)
            s[i]=sc[i];
        for(ll i=1;i<=n;++i)
        {
            if(mask&1)
            {
                sum-=2*sl[i];
                for(ll j=1;j<=m;++j)
                    s[j]-=2*v[i][j];
            }
            mask>>=1;
        }
        for(ll i=1;i<=m;++i)
            sum=max(sum,sum-2*s[i]);
        ans=max(ans,sum);
    }
    out<<ans<<'\n';
    return 0;
}