Cod sursa(job #2214203)

Utilizator NashikAndrei Feodorov Nashik Data 18 iunie 2018 15:25:18
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
//#include <iostream>
#include <fstream>
using namespace std;
int suma=0,maxim=0,n,m;
void backt(int durata,int mat[20][20]){
    if(durata==0){
        for(int i=1;i<=m;i++){
            int sum=0;
            for(int j=1;j<=n;j++){
                sum+=mat[j][i];
            }
            if(sum<0){
                sum*=-1;
                for(int j=1;j<=n;j++){
                    mat[j][i]*=-1;
                }
            }
        }
        suma=0;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                suma+=mat[i][j];
            }
        }
        maxim=max(maxim,suma);
    }
    else{
        backt(durata-1,mat);
        for(int i=1;i<=m;i++){
            mat[n-durata+1][i]*=-1;
        }
        backt(durata-1,mat);
    }
}
int v[20][20];
int main()
{
    ifstream cin("flip.in");
    ofstream cout("flip.out");
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>v[i][j];
        }
    }
    backt(n,v);
    cout<<maxim;
    return 0;
}