Pagini recente » Cod sursa (job #2094603) | Cod sursa (job #135688) | Cod sursa (job #1638742) | Cod sursa (job #2545854) | Cod sursa (job #652421)
Cod sursa(job #652421)
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
long n,m,T[20][20],L[25],P[25];
long i,j,mx=0;
void bt ( long k )
{
long i,j,s=0,s2=0;
if ( k == n )
{
for ( i=1; i<=n; ++i )
if ( L[i]==1 )
for ( j=1; j<=m; ++j )
T[i][j]*=-1;
for ( j=1; j<=m; ++j )
{
s=0;
for ( i=1; i<=n; ++i )
s+=T[i][j];
if ( s<0 )
s2-=s;
else
s2+=s;
}
/*for ( i=1; i<=n; ++i,cout<<"\n" )
for ( j=1; j<=m; ++j )
cout<<T[i][j]<<" ";
cout<<"\n"<<s2<<"\n\n";*/
if ( s2>mx )
{
mx=s2;
}
for ( i=1; i<=n; ++i )
if ( L[i]==1 )
for ( j=1; j<=m; ++j )
T[i][j]*=-1;
}
else{
L[k+1]=0;
bt(k+1);
L[k+1]=1;
bt(k+1);
}
}
int main()
{
in>>n>>m;
for ( i=1; i<=n; ++i )
for ( j=1; j<=m; ++j )
in>>T[i][j];
bt ( 0 );
out<<mx;
return 0;
}