Pagini recente » Cod sursa (job #1378495) | Cod sursa (job #3040667) | Cod sursa (job #3145129) | Cod sursa (job #788562) | Cod sursa (job #2090966)
#include <bits/stdc++.h>
using namespace std;
int n , m , a[17][17];
int S ;
bool v[17];
void scan()
{
freopen("flip.in","r",stdin);
scanf("%d%d",&n,&m);
for ( int i = 1; i <= n ; ++ i )
for ( int j = 1; j <= m ; ++ j )
{scanf ("%d", &a[i][j]);
S += a[i][j];
}
}
void schimb (int p)
{
for (int i = 1 ; i <= n ; ++i )
a[i][p] = -a[i][p];
}
void ceva()
{ int k = 0 , s ;
for ( int i = 1 ; i <= m ; ++ i )
{
if (v[i]) schimb(i);
}
for ( int i = 1 ; i <=n ; ++ i)
{ s= 0 ;
for ( int j = 1; j <=m ; ++ j )
s+=a[i][j];
if(s>0) k+=s;
else k-=s;
}
if(k>S)S=k;
for ( int i = 1 ; i <= m ; ++ i )
{
if (v[i]) schimb(i);
}
}
void af()
{
for ( int i =1 ; i<= m ;++i)
cout << v[i]<<" ";
cout << endl ;
}
void back (int k )
{
for ( int value = 0 ; value <= 1; ++value)
{
v[k]=value;if(k==m) ceva();
else back(k+1);
}
}
int main()
{
scan();
back(1);
cout << S ;
return 0;
}