Pagini recente » Cod sursa (job #603177) | Cod sursa (job #700732) | Cod sursa (job #1908317) | Cod sursa (job #1931904) | Cod sursa (job #2757491)
#include <fstream>
using namespace std;
int mat[20][20],v[25];
int sumcol[25],sumcolinv[25];
int main()
{
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m,i,j,l,c,max1=0,put2=1;
fin>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fin>>mat[i][j];
}
}
for(i=1;i<=n;i++)
{
put2*=2;
}
put2--;int pas,poz,ci,sum;
for(i=0;i<=put2;i++)
{
pas=1;poz=1;ci=i;sum=0;
for(j=0;j<=20;j++)
{
v[j]=sumcol[j]=sumcolinv[j]=0;
}
while(ci>0)
{
if(ci&1)
{
v[pas]=1;
poz++;
}
pas++;
ci/=2;
}
for(l=1;l<=n;l++)
{
if(v[l]==1)
{
for(c=1;c<=m;c++)
{
sum+=-1*mat[l][c];
sumcol[c]+=-1*mat[l][c];
sumcolinv[c]+=mat[l][c];
}
}
else
{
for(c=1;c<=m;c++)
{
sum+=mat[l][c];
sumcol[c]+=mat[l][c];
sumcolinv[c]+=-1*mat[l][c];
}
}
}
for(j=1;j<=m;j++)
{
if(sum-sumcol[j]+sumcolinv[j]>sum)
{
sum-=sumcol[j];
sum+=sumcolinv[j];
}
}
if(sum>max1)
{
max1=sum;
}
}
fout<<max1<<'\n';
return 0;
}