Pagini recente » Cod sursa (job #922967) | Cod sursa (job #2430012) | Cod sursa (job #1149082) | Cod sursa (job #1275734) | Cod sursa (job #2439054)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m,mat[20][20],opus,sume_coloane,nr,MAX,sum=0,i,maxi,j,mat1[20][20];
int suma_matrice(int mat[20][20])
{
int i,j,s=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=mat[i][j];
return s;
}
void copiere_matrice(int mat[20][20],int mat1[20][20])
{
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
mat[i][j]=mat1[i][j];
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
fin>>mat[i][j];
mat1[i][j]=mat[i][j];
}
MAX= 1 << (n+m);
while(nr<MAX)
{
sum=0;
for(i=0;i<n+m;i++)
if(nr & (1 << i))
{
if(i+1<=n)
for(j=1;j<=m;j++)
mat1[i+1][j]*=(-1);
else
for(j=1;j<=n;j++)
mat1[j][i+1-n]*=(-1);
}
sum=suma_matrice(mat1);
if(nr==0) maxi=sum;
else if(sum>maxi)
maxi=sum;
nr++;
copiere_matrice(mat1,mat);
}
fout<<maxi<<'\n';
return 0;
}