Cod sursa(job #1730527)

Utilizator xSliveSergiu xSlive Data 17 iulie 2016 00:44:04
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <bitset>
#include <math.h>
#define NMAX 20
using namespace std;
int a[20][20],n,m,sum=0;
int lin[NMAX],col[NMAX];
ifstream f("flip.in");
ofstream g("flip.out");
int main()
{
    f >> n >> m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            f>>a[i][j];
            lin[i]+=a[i][j];
            col[j]+=a[i][j];
            sum+=a[i][j];
        }
    int digit;
    int maxim=sum;
    for(int i=1;i<(int)pow(2,n);i++)
        for(int j=1;j<(int)pow(2,m);j++){
            int ic=i;
            int jc=j;
            int sumrez=sum;
            for(int k=1;k<=n&&ic;k++){
                digit = ic%2;
                ic/=2;
                if(digit)
                    sumrez-=2*lin[k];
            }
            for(int k=1;k<=m&&jc;k++){
                digit = jc%2;
                jc/=2;
                if(digit)
                    sumrez-=2*col[k];
            }
            maxim=max(maxim,sumrez);
        }
    g << maxim;
    f.close();
    g.close();
    return 0;
}