Pagini recente » Cod sursa (job #2849549) | Cod sursa (job #1726231) | Cod sursa (job #992249) | Cod sursa (job #209536) | Cod sursa (job #1792139)
#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;
else mademod=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)
{
mademod=1;
int x1=getsum();
x[0][j]*=-1;
if(x1>=getsum())x[0][j]*=-1;
else mademod=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();
}