Cod sursa(job #1820880)

Utilizator enacheionutEnache Ionut enacheionut Data 2 decembrie 2016 12:38:16
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

#define MAX 16

using namespace std;

vector<vector<int>> matrix(MAX, vector<int>(MAX));
bool flip[MAX];
short numberOfRows;
short numberOfColumns;

void ReadInput()
{
    ifstream inputStream("flip.in");
    inputStream>> numberOfRows>> numberOfColumns;

    for( int row = 0; row < numberOfRows; ++row )
    {
        for( int column = 0; column < numberOfColumns; ++column )
        {
            inputStream>> matrix[row][column];
        }
    }
    inputStream.close();
}

void CalculateMaximumSum(int &maximumSum, short row)
{
    if( row < numberOfRows )
    {
        for( int i = 0; i <= 1 ; ++i )
        {
            flip[row] = i;
            CalculateMaximumSum(maximumSum, row + 1);
        }
    }
    else
    {
        int sum = 0;
        for( int column = 0; column < numberOfColumns; ++column )
        {
            int sumAux = 0;
            for( int row = 0; row < numberOfRows; ++row )
            {
                sumAux += ( flip[row] == 1 ) ? matrix[row][column] : -matrix[row][column];
            }
            sum += ( sumAux < 0 ) ? -sumAux : sumAux;
        }

    }
}

int main()
{
    int maximumSum = 0;

    ReadInput();
    CalculateMaximumSum(maximumSum, 0);

    ofstream outputStream("flip.out");
    outputStream<< maximumSum;
    outputStream.close();

    return 0;
}