Pagini recente » Cod sursa (job #2082113) | Cod sursa (job #2649675) | Cod sursa (job #1754369) | Cod sursa (job #28676) | Cod sursa (job #2863036)
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int n,m,a[16][16],s=0,s2;
int x[10];
int b[16][16];
void flip_j(int j)
{
for(int i=1;i<=n;i++)
a[i][j]*=-1;
}
void flip_i(int i)
{
for(int j=1;j<=m;j++)
b[i][j]*=-1;
}
int solutie(int k)
{
return k==m;
}
int suma(int i)
{
int s=0;
for(int j=1;j<=m;j++)
s+=b[i][j];
return s;
}
void backtr(int k)
{
if(k<=m){
for(int y=1;y<=2;y++)
{
flip_j(k);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
b[i][j]=a[i][j];
for(int i=1;i<=n;i++)
if(suma(i)<0) flip_i(i);
s2=0;
for(int i=1;i<=n;i++)
s2+=suma(i);
if(s<s2) s=s2;
backtr(k+1);
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
backtr(1);
cout<<s;
cin.close();
cout.close();
return 0;
}