Pagini recente » Cod sursa (job #315446) | Cod sursa (job #2487870) | Cod sursa (job #1191225) | Cod sursa (job #834674) | Cod sursa (job #639963)
Cod sursa(job #639963)
#include <cstdio>
using namespace std;
int s=0;
int n;
int m;
int a[100][100];
void read()
{
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
s+=a[i][j];
}
}
int sc[17];
int sl[17];
void comut(int v,int q)
{ if(q==m)
for(int i=0;i<q;i++)
{
a[i][v]*=-1;
}
else
for(int i=0;i<q;i++)
{
a[v][i]*=-1;
}
}
int sp;
int suma()
{ int z=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
z+=a[i][j];
}
return z;
}
int vizl[100];
int vizc[100];
void back1(int k)
{
if(k==m)
{
return;
}
for(int v=k;v<m;v++)
{ if(!vizc[v]){
comut(v,m);
vizc[v]=1;
sp=suma();
if(s<sp)
s=sp;
back1(k+1);
vizc[v]=0;
comut(v,m);
sp=suma();
if(s<sp)
s=sp;
}
}
}
void back(int k)
{
if(k==n)
{
return;
}
for(int v=k;v<n;v++)
{ if(!vizl[v])
{vizl[v]=1;
comut(v,n);
sp=suma();
if(s<sp)
s=sp;
back1(k);
back(k+1);
vizl[v]=0;
comut(v,n);
sp=suma();
if(s<sp)
s=sp;
}
}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
read();
back(0);
printf("%d",s);
return 0;
}