Cod sursa(job #1779365)

Utilizator AlexandruRudiAlexandru Rudi AlexandruRudi Data 15 octombrie 2016 11:09:27
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

int a[20][20],b[20][20],c[20],n,m;
long long smax=-9999999999;

void Try(){
    long long s=0,t=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++) b[i][j]=a[i][j];
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++) if(c[j]) b[i][j]*=(-1);
    }
    for(int i=1;i<=n;i++){
        t=0;
        for(int j=1;j<=m;j++) t+=b[i][j];
        if(t>0) s+=t;
        else s-=t;
    }
    if(s>smax) smax=s;
}

void MakeC(int k){
    if(k==m) {
        Try();
        c[k]=1;
        Try();
        c[k]=0;
    }
    else{
        MakeC(k+1);
        c[k]=1;
        MakeC(k+1);
        c[k]=0;
    }
}

int main()
{
    ifstream in("flip.in");
    ofstream out("flip.out");
    in >> n >> m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++) in >> a[i][j];
    }
    MakeC(1);
    cout << smax;
}