Cod sursa(job #1466675)

Utilizator KusikaPasa Corneliu Kusika Data 29 iulie 2015 19:55:58
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
long int sum=0;
int n, m;

void Flip(int y, long int a[32][32])
{
    int i, j, z;
    long int k = 0, v;

    if (y == m)
    {
        for (i = 0; i < n; i++)
            for (j = 0; j < m; j++)
                k += a[i][j];
        sum = max(k, sum);
    }
    else
    {
        z = -1;
        for (i = 0; i < n; i++)
        {
            a[i][y] = a[i][y] * z;
            v = 0;
            for (j = 0; j < m; j++)
                v += a[i][j];
            if (v < 0)
                for (j = 0; j < m; j++)
                    a[i][j] = a[i][j] * z;
        }
        Flip(y+1,a);

        z = 1;
        for (i = 0; i < n; i++)
        {
            a[i][y] = a[i][y] * z;
            v = 0;
            for (j = 0; j < m; j++)
                v += a[i][j];
            if (v < 0)
                for (j = 0; j < m; j++)
                    a[i][j] = a[i][j] * z;
        }
        Flip(y+1,a);
    }
}

main()
{
    ifstream f1("test.in");
    ofstream f2("test.out");
    long int matrix[32][32];
    int i, j;

    f1>>n>>m;
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
        {
            f1 >> matrix[i][j];
            sum += matrix[i][j];
        }

    Flip(0,matrix);
    f2 << sum;
}