Pagini recente » Cod sursa (job #1978291) | Monitorul de evaluare | Cod sursa (job #680290) | Cod sursa (job #2011827) | Cod sursa (job #796465)
Cod sursa(job #796465)
#include <fstream>
using namespace std;
int matrix[16][16], lines = 0, columns = 0, maxSum = 0;
ifstream f("flip.in");
ofstream g("flip.out");
void read()
{
int line, column;
f >> lines >> columns;
for(line = 0; line < lines; line++)
for(column = 0; column < columns; column++)
f >> matrix[line][column];
f.close();
}
int sum()
{
int line, column, linesSums[16] = {0}, sum = 0;
for(line = 0; line < lines; line++)
for(column = 0; column < columns; column++)
linesSums[line] += matrix[line][column];
for(line = 0; line < lines; line++)
if(linesSums[line] > 0)
sum += linesSums[line];
else
sum += (-1) * linesSums[line];
return sum;
}
int bt(int column)
{
if(column == columns)
{
int currentSum = sum();
if(maxSum < currentSum)
maxSum = currentSum;
}
else
{
bt(column + 1);
for(int line = 0; line < lines; line++)
{
matrix[line][column] *= (-1);
}
bt(column + 1);
}
return maxSum;
}
int main()
{
read();
g<<bt(0);
g.close();
return 0;
}