Pagini recente » Cod sursa (job #2970035) | Cod sursa (job #1903948) | Cod sursa (job #937494) | Cod sursa (job #224073) | Cod sursa (job #1470498)
#include <iostream>
#include <fstream>
using namespace std;
ofstream g("flip.out");
int a[20][20],n,m,vmax,aux[25][25];
bool s[40];
void afis()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
aux[i][j]=a[i][j];
for(int i=1;i<=n;i++)
if(s[i]==1)
for(int j=1;j<=m;j++)
aux[i][j]=-aux[i][j];
for(int i=n+1;i<=n+m;i++)
if(s[i]==1)
for(int j=1;j<=n;j++)
aux[j][i-n]=-aux[j][i-n];
int suma=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
suma+=aux[i][j];
if(suma>vmax)
vmax=suma;
}
void bk(int k)
{
if(k>n+m)
{
afis();
return;
}
s[k]=0;
bk(k+1);
s[k]=1;
bk(k+1);
}
int main()
{
ifstream f("flip.in");
f>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
f>>a[i][j];
/*a[i][0]+=a[i][j];
a[i][m+1]+=-a[i][j];
a[0][j]+=a[i][j];
a[n+1][j]+=-a[i][j];*/
}
bk(1);
g<<vmax<<'\n';
f.close();
g.close();
return 0;
}