Cod sursa(job #1858109)

Utilizator birotxNedelcescu Radu Costin birotx Data 27 ianuarie 2017 00:46:40
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");


class flipClass{
    private:
        int n,m, perm=0;
        long matrix[17][17];
        long maxi = 0;
    public:

    flip(){
        cout<<"init...";
    }
    read(){
        f>>m;
        f>>n;

        for(int i=0;i<m;i++)
        {
            for(int j=0; j<n; j++)
            {
                f>>matrix[i][j];
            }
        }
    }
    /*show(){
        for(int i=0;i<m;i++)
        {
            for(int j=0; j<n; j++)
            {
                cout<<matrix[i][j]<<" ";
            }
            cout<<'\n';
        }
        cout<<'\n';
    }*/
    int do_p(){
        long a_total = 0;
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                a_total = a_total + ((((perm & (1<<i))>>i) ^ ((perm & (1<<m+j))>>m+j)) ? (-1) * matrix[i][j] : matrix[i][j]);

            }
        }
        if(a_total > maxi)
        {
            maxi = a_total;
        }
        perm++;
        return perm;
    }
    int getmax_p(){
        return pow(2,n+m);
    }
    long finish(){
        return maxi;
    }
};

int main()
{

    flipClass flip;
    flip.read();
    //flip.show();

    unsigned long mp = flip.getmax_p();
    while(flip.do_p()<mp);

    cout<< flip.finish();
}