Cod sursa(job #675702)

Utilizator caliman_ghCaliman Gheorghe caliman_gh Data 7 februarie 2012 23:21:38
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");
int a[16][16], b[16][16];
int v[32];
int n,m,S=0;

void suma();

void citire ()
{
    int i,j;
    f >> n >> m;
    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
            f >> a[i][j];
}



void amplific ()
{
    int i, j;

    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
        b[i][j]=a[i][j];

    for (i=0; i<n; i++)
    if (v[i]==1)
        for (j=0; j<m; j++) b[i][j]*=-1;

    for (j=0; j<m; j++)
    if (v[n+j]==1)
        for (i=0; i<n; i++) b[i][j]*=-1;

        suma();
}

void bin (int p)
{
    if (p==n*m)
    {
        amplific();
        return;
    }
    v[p] = 0;
    bin(p+1);
    v[p] = 1;
    bin(p+1);
}

void suma ()
{
    int i, j, s=0;
    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
        s+=b[i][j];
    if (s>S) S=s;
}

int main ()
{
    citire();
    bin(0);
    g << S;
}