Pagini recente » Cod sursa (job #2648307) | Cod sursa (job #2326743) | Cod sursa (job #2213524) | Cod sursa (job #2661421) | Cod sursa (job #167791)
Cod sursa(job #167791)
#include<fstream.h>
#include<iostream.h>
#include<math.h>
ifstream fin("info.in");
ofstream fout("info.out");
int n,m,i,j,k;
long aux, x, a[16][16],v[16],max,suma;
void back(long com)
{
if(com<=pow(2,n))
{
for(i=0; i<n; i++)
if(v[i])
for(j=0; j<m; j++) a[i][j]*=-1;
for(i=0; i<m; i++)
{
suma=0;
for(j=0; j<n; j++) suma+=a[j][i];
if(suma<0) for(j=0; j<n; j++) a[j][i]*=-1;
}
suma=0;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
suma+=a[i][j];
if(suma>max) max=suma;
int t=1;
for(i=0;i<n;i++)
if(v[i]==0) {v[i]=t; t=0; }
else if(t==1) {v[i]=0; t=1; }
back(com+1);
}
//fout<<"odata "<<com<<" "<<pow(2,n)<<"\n";
//if(com<pow(2,n)) back(com+1);
}
int main()
{
fin>>n>>m;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
fin>>a[i][j];
back(1);
fout<<max;
return 0;
}