Pagini recente » Cod sursa (job #17233) | Cod sursa (job #2318344) | Cod sursa (job #3239303) | Cod sursa (job #732441) | Cod sursa (job #448233)
Cod sursa(job #448233)
#include <fstream>
using namespace std;
const char InFile[]="flip.in";
const char OutFile[]="flip.out";
const int MaxN=18;
const int MaxM=18;
ifstream fin(InFile);
ofstream fout(OutFile);
int maxs,m,n,mat[MaxN][MaxM];
int absi(int a)
{
if(a<0)return -a;
return a;
}
void switch_line(int line)
{
for(register int i=1;i<=m;++i)
{
mat[line][i]*=-1;
}
}
void check()
{
int msum=0;
for(register int i=1;i<=m;++i)
{
int sum=0;
for(register int j=1;j<=n;++j)
{
sum+=mat[j][i];
}
msum+=abs(sum);
}
if(msum>maxs)
{
maxs=msum;
}
}
void back(int k)
{
if(k>n)
{
check();
}
else
{
back(k+1);
switch_line(k);
back(k+1);
}
}
int main()
{
fin>>n>>m;
for(register int i=1;i<=n;++i)
{
for(register int j=1;j<=m;++j)
{
fin>>mat[i][j];
}
}
fin.close();
back(1);
fout<<maxs;
fout.close();
return 0;
}