Pagini recente » Cod sursa (job #149865) | Cod sursa (job #2350794) | Cod sursa (job #2222771) | Cod sursa (job #2984050) | Cod sursa (job #2457087)
#include <iostream>
#include<cstdio>
#define nmax 20
using namespace std;
FILE * f=fopen("flip.in","r");
FILE * g=fopen("flip.out","w");
int n,m,a[nmax][nmax],max1;
void citire( )
{ int i,j;
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fscanf(f,"%d",&a[i][j]);
}
}
}
int v[nmax];
int suma( )
{ int i,j,s=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
s=s+a[i][j];
}
}
return s;
}
void linie(int k)
{
for(int i=1;i<=m;i++)
a[k][i]=a[k][i]*(-1);
}
void coloana (int k)
{
for(int i=1;i<=n;i++)
a[i][k]=a[i][k]*(-1);
}
void afisare( )
{
int i;
for(i=1;i<=n;i++)
{
if(v[i]==1)
linie(i);
}
}
int b[nmax];
void bk1(int k)
{
int i,r,h;
for(i=0;i<=1;i++)
{ b[k]=i;
if(k==m)
{ for( h=1;h<=m;h++)
{
if(b[h]==1)
coloana(h);
}
r=suma( );
if(r>max1)
max1=r;
for( h=1;h<=m;h++)
{
if(b[h]==1)
coloana(h);
}
}
else
bk1(k+1);
}
}
void bk(int k)
{
int i,h;
for(i=0;i<=1;i++)
{ v[k]=i;
if(k==n)
{ for( h=1;h<=n;h++)
{
if(v[h]==1)
linie(h);
}
bk1(1);
for( h=1;h<=n;h++)
{
if(v[h]==1)
linie(h);
}
}
else
bk(k+1);
}
}
int main()
{ int i;
citire( );
bk(1);
fprintf(g,"%d",max1);
return 0;
}