Cod sursa(job #2158787)

Utilizator stefanbrb10Barbu Stefan stefanbrb10 Data 10 martie 2018 16:20:18
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#define nrmax 18
using namespace std;
int st[nrmax*nrmax];
int A[nrmax][nrmax];
int n,m,ans;

void citire(){
    ifstream input("flip.in");
    input>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        input>>A[i][j];
    input.close();
}

void suma(){
     int s_linie,s_tot=0;
     for(int i=1;i<=n;i++){
         s_linie=0;
        for(int j=1;j<=m;j++)
            s_linie+=A[i][j]*st[j];
        if(s_linie<0)s_linie*=-1;
        s_tot+=s_linie;
     }
     if(s_tot>ans)ans=s_tot;
}

void backtrack(int k){
    if(k>n && k>m)
        suma();
    else {
            st[k]=1;
            backtrack(k+1);
            st[k]=-1;
            backtrack(k+1);
    }
}

int main(){
    citire();
    backtrack(1);
    ofstream print("flip.out");
    print<<ans;
    print.close();
    return 0;
}