Pagini recente » Cod sursa (job #2866925) | Cod sursa (job #2164420) | Cod sursa (job #2644579) | Cod sursa (job #447540) | Cod sursa (job #1792137)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int x[17][17],smax, stop=0;
int n,m;
long long getsum()
{
long long sa=0;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
sa += x[i][j]*x[0][j]*x[i][0];
}
}
return sa;
}
void init()
{
for(int a=m;a>=1;a--)
x[a][0]=1;
for(int a=1;a<=n;a++)
x[0][a]=1;
}
int nextp(){
int mademod=0;
long long sa;
for(int i=1;i<=m;i++)
{
sa=0;
for(int j=1;j<=n;j++)
{
sa += x[i][j]*x[0][j]*x[i][0];
}
if(sa<0)
{
mademod=1;
x[i][0]*=-1;
}
if(sa==0)
{
int x1=getsum();
x[i][0]*=-1;
if(x1>getsum())x[i][0]*=-1;
}
}
for(int j=1;j<=n;j++)
{
sa=0;
for(int i=1;i<=m;i++)
{
sa +=x[i][j]*x[0][j]*x[i][0];
}
if(sa<0)
{
mademod=1;
x[0][j]*=-1;
}
if(sa==0)
{
int x1=getsum();
x[0][j]*=-1;
if(x1>getsum())x[0][j]*=-1;
}
}
return mademod;
}
int main()
{
f>>m>>n;
init();
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
f>>x[i][j];
}
}
while(nextp())
{
}
g<<getsum();
}