Pagini recente » Cod sursa (job #2633930) | Cod sursa (job #618409) | Cod sursa (job #1217015) | Cod sursa (job #1558262) | Cod sursa (job #2468502)
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
int n,m;
int a[17][17];
int su=0;
int ns=0;
void bc(int c);
void bl(int c);
void check();
void read()
{
ifstream fin ("flip.in");
fin >> n >> m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
fin >> a[i][j];
}
}
fin.close();
}
int lsum(int l)
{
int s=0;
for(int i=0;i<m;i++)
{
s+=a[l][i];
}
return s;
}
int csum(int c)
{
int s=0;
for(int i=0;i<n;i++)
{
s+=a[i][c];
}
return s;
}
void sl(int l)
{
int ss=0;
for(int i=0;i<m;i++)
{
a[l][i]=-a[l][i];
ss+=a[l][i];
}
ns+=2*ss;
}
void sc(int c)
{
int ss=0;
for(int i=0;i<n;i++)
{
a[i][c]=-a[i][c];
ss+=a[i][c];
}
ns+=2*ss;
}
void print(int s)
{
ofstream fout("flip.out");
fout << s << endl;
fout.close();
}
void check()
{
su = max(su,ns);
}
void bl(int l)
{
check();
if(l<n)
{
sl(l);
for(int i=l+1;i<=n;i++)
bl(i);
for(int i=0;i<=m;i++)
bc(i);
sl(l);
}
}
void bc(int c)
{
check();
if(c<m)
{
sc(c);
for(int i=c+1;i<=m;i++)
bc(i+1);
sc(c);
}
}
int main()
{
read();
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
ns+=a[i][j];
}
}
for(int i=0;i<n;i++)
bl(i);
for(int i=0;i<m;i++)
bc(i);
print(su);
return 0;
}