Pagini recente » Cod sursa (job #1500459) | Cod sursa (job #2834061) | Cod sursa (job #2278243) | Cod sursa (job #3254663) | Cod sursa (job #598702)
Cod sursa(job #598702)
#include <cstdio>
int n , m , D[16][16] , maxs = -100000 ;
bool l[16] , c[16];
void back(int i,int j)
{
if(i==n && j==m)
{
int s = 0;
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
if( (l[i] && c[j])||(!l[i] && !c[j]) ) s+=D[i][j];
else
if(l[i] || c[j]) s+=D[i][j]*(-1);
maxs = maxs > s ? maxs : s;
}
else
{
if(i<n) i++;
if(j<m) j++;
l[i] = true , c[i] = false , back(i,j);
l[i] = false , c[i] = true , back(i,j);
l[i] = c[i] = false , back(i,j);
}
}
void read()
{
freopen("flip.in","r",stdin);
scanf("%d %d",&n,&m);
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
scanf("%d",&D[i][j]);
}
void write()
{
freopen("flip.out","w",stdout);
printf("%d",maxs);
}
int main()
{
read();
back(0,0);
write();
return 0;
}