Cod sursa(job #3209750)

Utilizator andreea678Rusu Andreea andreea678 Data 3 martie 2024 14:21:40
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");
int smax=INT_MIN;
int n, m;
int tabla[17][17];
int stare[17];//vector ce retine starea fiecarui element de pe o coloana (0-normal, 1-inversat)
void rezolva(){
    int S=0;//suma per total
    for (int i=1; i<=n; ++i){
        int s=0;//suma coloana
        for (int j=1; j<=m; ++j){
            if (stare[j]){
                s-=tabla[i][j];
            }
            else {
                s+=tabla[i][j];
            }
        }
        if (s<0){
            S-=s;
        }
        else {
            S+=s;
            }
    }
    if (S>smax){
        smax=S;
    }
}
void backtr(int k){
    for (int i=0; i<=1; ++i){
        stare[k]=i;
        if (k==m){
            rezolva();
        }
        else {
            backtr(k+1);
        }
    }
}
int main()
{

    fin >> n >> m;
    for (int i=1; i<=n; ++i){
        for (int j=1; j<=m; ++j){
            fin >> tabla[i][j];
        }
    }
    backtr(1);
    cout << smax;
    return 0;
}