Pagini recente » Cod sursa (job #1445016) | Cod sursa (job #560207) | Cod sursa (job #1460634) | Cod sursa (job #2757836) | Cod sursa (job #57473)
Cod sursa(job #57473)
#include<fstream.h>
#include<math.h>
long int x[20][20],tab[20][20],n,s,o,cont,k,m,i,c[20],j,t,l,aux,a,b;
int main();
int write();
int read();
int cigar();
int adunare();
int main ()
{
read();
for (i=1; i<=n; i++ )
for (j=1; j<=n; j++ )
cont+=x[i][j];
for ( o=1; o<=pow(2, l); o++)
{
adunare();
cigar();
}
write();
return 0;
}
int adunare()
{
t=1;
for ( i=l; i; i--)
{ s=c[i]+t;
c[i]=s%2;
t=s/2;
}
return 0;
}
int read()
{
ifstream fin("flip.in");
fin>>n>>m;
l=n+m;
for ( i=1 ; i<=n ; i++ )
for ( j=1; j<=m; j++ )
fin>>x[i][j];
fin.close();
return 0;
}
int write ()
{
ofstream fout("flip.out");
fout<<cont;
fout.close();
return 0;
}
int cigar ()
{ for( i=1; i<=n; i++)
for( j=1; j<=m; j++ )
tab[i][j]=x[i][j];
for( i=1; i<=n; i++ )
if( c[i]==1 ) for( j=1; j<=m; j++ ) tab[i][j]*=-1;
for( i=n+1; i<=l; i++)
if ( c[i]==1 ) for (j=1 ; j<=n; j++ ) if(c[j]==0) tab[j][i-n]*=-1;
b=0;
for ( i=1; i<=n; i++ )
for ( j=1; j<=n; j++ )
b+=tab[i][j];
if(b>cont) cont=b;
return 0;
}