Cod sursa(job #675727)

Utilizator caliman_ghCaliman Gheorghe caliman_gh Data 8 februarie 2012 00:13:36
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");
int a[16][16], b[16][16];
int v[16];
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)
    {
        amplific();
        return;
    }
    v[p] = 0;
    bin(p+1);
    v[p] = 1;
    bin(p+1);
}

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

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