Pagini recente » Cod sursa (job #294719) | Cod sursa (job #525217) | Cod sursa (job #1013330) | Cod sursa (job #1356470) | Cod sursa (job #1820880)
#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;
}