Cod sursa(job #2454310)

Utilizator MihclerioVladimir Chim Mihclerio Data 7 septembrie 2019 22:02:36
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.37 kb
#include<bits/stdc++.h>

#pragma GCC optimize("O3")
#pragma GCC target("avx2")
#pragma GCC optimize("unroll-loops")

#define all(s) s.begin(),s.end()
#define rc(x) return cout<<x<<endl,0
#define forn(i,n) for(int i=0;i<int(n);i++)
#define len(a) (int) (a).size()

#define pb push_back
#define mp make_pair
#define fr first
#define sc second

typedef long long ll;
typedef long double ld;

const int nmax=2e5+3;
const int mod=998244353;
const ll inf=0x3f3f3f3f3f3f3f3f;

/*===================*\
      comentarii:
\*===================*/

using namespace std;

    ll i,j,n,m;
    ll a[20][20], maxim=0, s[20];

    void verif(){
        ll aux, suma=0, i, j;
        for(i=1;i<=m;i++){
        aux=0;
        for(j=1;j<=n;j++)
        aux+=s[j]*a[j][i];
        if(aux<0) aux=-aux;
        suma+=aux;
        }
        if(suma>maxim) maxim=suma;
    }

    void back(int k){
        if(k>n) verif();
            else {
            s[k]=1;
            back(k+1);
            s[k]=-1;
            back(k+1);
        }
    }

    int main()
    {
        freopen("flip.in","r",stdin);
        freopen("flip.out","w",stdout);
        cin>>n>>m;
        for(i=1;i<=n;i++)
        {
        for(j=1;j<=m;j++)
            {
            cin>>a[i][j];
            }
        }
        back(1);
        cout<<maxim;
        return 0;
    }