Cod sursa(job #1807757)

Utilizator raulmuresanRaul Muresan raulmuresan Data 16 noiembrie 2016 21:40:31
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include<fstream>
#include<vector>
#include<string>
#include<stdlib.h>


using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");


string sir;
int i, n, k, j,st[1000],sol,x,y,m,maxim,maximLocal;
int a[30][30], b[30][30];

int power2(int x)
{
    int result = 1;
    for(int i =1 ;i<=x;i++)
    {
        result = result*2;
    }
    return result;
}

int main()
{
    fin >> n >> m;
    for(i = 1; i <= n; i++)
    {
        for(j = 1; j <= m; j++)
        {
            fin >> a[i][j];
            maxim += a[i][j];
        }
    }

        int powM = power2(m);
        for(i = 1; i <= powM; i++)
        {
            st[1]++;
            int sum = 0 ,selected = 0;
            for(j=1;j<=m;j++)
            {
                st[j + 1] += st[j] / 2;
                st[j] = st[j] % 2;
            }
            for(j = 1;j <= n; j++)
            {
                for(k = 1;k <= m; k++)
                {
                    if(st[k] == 0)
                        b[j][k] = a[j][k];
                    else
                        b[j][k] = -a[j][k];
                }
            }
            maximLocal = 0;
            for(j = 1;j <= n; j++)
            {
                int sum = 0;
                for(k = 1;k <= m; k++)
                {
                    sum += b[j][k];
                }
                maximLocal += abs(sum);
            }
            maxim = max(maxim,maximLocal);
        }
        fout << maxim << "\n";
}