Pagini recente » Borderou de evaluare (job #2693263) | Borderou de evaluare (job #1058246) | Borderou de evaluare (job #794906) | Borderou de evaluare (job #2247187) | Cod sursa (job #2501796)
#include <fstream>
using namespace std;
bool lin[17],col[17];
int mat[17][17];
ifstream in ("flip.in");
ofstream out ("flip.out");
int main()
{
int n,m,i,j,max1=0,c,sum,s;
in>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
in>>mat[i][j],max1+=mat[i][j];
sum=0;
for (j=1;j<=m;j++)
{
s=0;
for (i=1;i<=n;i++)
s+=mat[i][j];
if (s<0)
sum+=-s;
else
sum+=s;
}
max1=max(max1,sum);
for (i=1;i<(1<<n);i++)
{
for (j=1;j<=16;j++)
lin[j]=0;
for (j=1;j<=n;j++)
if (i&(1<<(j-1)))
lin[j]=1;
sum=0;
for (j=1;j<=m;j++)
{
s=0;
for (c=1;c<=n;c++)
{
if (lin[c])
s+=-1*mat[c][j];
else
s+=mat[c][j];
}
if (s<0)
sum+=-s;
else
sum+=s;
}
max1=max(max1,sum);
}
out<<max1;
return 0;
}