Pagini recente » Cod sursa (job #1466266) | Cod sursa (job #2303191) | Cod sursa (job #529190) | Cod sursa (job #933011) | Cod sursa (job #349690)
Cod sursa(job #349690)
#include <stdio.h>
#define abs(a) ((a)>0?(a):-(a))
#define Solve() Back(-1)
long int n, m, mat[17][17], max, lsol[17], csol[17], max2;
void Read()
{
FILE *f;
int i=0,j=0;
f = fopen("flip.in","r");
fscanf(f,"%ld %ld",&n,&m);
for(i = 0;i<n;++i)
{
for(j=0;j<m;++j)
{
fscanf(f,"%ld",&mat[i][j]);
}
}
fclose(f);
max2 = n>m?n:m;
}
void Write()
{
FILE *f;
f = fopen("flip.out","w");
fprintf(f,"%ld",max);
fclose(f);
}
void Back(int k)
{
if(k==max2)
{
long int s=0,l;
int j;
for(register int i = 0;i<n;++i)
{
for(l = 0, j = 0;j<m;++j)
{
l+=mat[i][j]*lsol[i]*csol[j];
}
s+=abs(l);
}
max = max>s?max:s;
}
else
{
lsol[k+1] = -1;
csol[k+1] = -1;
Back(k+1);
csol[k+1] = 1;
lsol[k+1] = 1;
Back(k+1);
lsol[k+1] = 1;
csol[k+1] = -1;
Back(k+1);
csol[k+1] = 1;
lsol[k+1] = -1;
Back(k+1);
}
}
int main()
{
Read();
Solve();
Write();
return 0;
}