Pagini recente » Cod sursa (job #1848680) | Cod sursa (job #1143574) | Cod sursa (job #2723543) | Cod sursa (job #1821773) | Cod sursa (job #1353450)
#include <fstream>
std::ifstream in("flip.in");
std::ofstream out ("flip.out");
int n,m,mx=0, V[17][17],Z[17][17];
bool L[17];
int check(int k)
{
int a=0;
for(int i=1;i<=n;i++)
{
if(L[i]==0)
a+=V[k][i];
else
a+=Z[k][i];
}
if(a<0)
return -a;
else
return a;
}
void sum()
{
int t=0;
for (int i=1;i<=n;i++)
t+=check(i);
if(mx<t)
mx=t;
}
void read()
{
in>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
in>>V[i][j];
Z[i][j]=-V[i][j];
}
}
void combcol(int k,int a,int j)
{
if(a<=k)
{
for(int i=j;i<=m;i++)
{
L[i]=!L[i];
combcol(k,a+1,i);
L[i]=!L[i];
}
}
else
{
sum();
}
}
int main()
{
read();
if(n+m>27)
for(int i=0;i<=m/2;i++)
combcol(i,1,1);
else
for(int i=0;i<=m-2;i++)
combcol(i,1,1);
out<<mx;
}