Pagini recente » Cod sursa (job #3208192) | Cod sursa (job #3208197) | Cod sursa (job #1941240) | Cod sursa (job #2907621) | Cod sursa (job #1009759)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int x[22];
int caz=0;
int matrix[19][19];
int n,m,s=0;
long long sMax = 1<<31;
void read()
{
in>>n>>m;
for(int i=1; i<=n ; i++)
{
for(int j=1 ; j<=m ; j++)
{
in>>matrix[i][j];
}
}
}
void set1(int line)
{
for(int i = 1 ; i<=m ; i++)
{
matrix[line][i]*=(-1);
}
}
void set2(int column)
{
for(int i=1 ; i<=n ; i++)
{
matrix[i][column]*=(-1);
}
}
int sum()
{
int s=0;
for(int i=1; i<=n ; i++)
{
for(int j=1 ; j<=m ; j++)
{
s+=matrix[i][j];
}
}
return s;
}
void bkt(int k)
{
if(k==n+1)
{
int s=sum();
if(s>sMax)
{
sMax = s;
}
}
else
{
int s0;
for(int i=1 ; i<= 3 ; i++)
{
if(i==1)
{
bkt(k+1);
}
if(i==2)
{
set1(k);
bkt(k+1);
set1(k);
}
if(i==3)
{
set2(k);
bkt(k+1);
set2(k);
}
}
}
}
void write()
{
out<<sMax;
}
int main()
{
read();
bkt(1);
write();
}