Pagini recente » Cod sursa (job #2272927) | Cod sursa (job #1668477) | Cod sursa (job #2936196) | Cod sursa (job #2439274) | Cod sursa (job #1792112)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ifstream k("flip.in");
ofstream g("flip.out");
int x[17][17],smax, stop=0;
int n,m;
int getsum()
{
int sa=0;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
sa = sa + x[i][j]*x[0][j]*x[i][0];
}
}
return sa;
}
int 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,sa=0;
for(int i=1;i<=m;i++)
{
sa=0;
for(int j=1;j<=n;j++)
{
sa = sa + x[i][j]*x[0][j]*x[i][0];
}
if(sa<0)
{
mademod=1;
if(x[i][0]==1)x[i][0]=-1;else x[i][0]=1;
}
}
for(int j=1;j<=n;j++)
{
sa=0;
for(int i=1;i<=m;i++)
{
sa = sa + x[i][j]*x[0][j]*x[i][0];
}
if(sa<0)
{
mademod=1;
if(x[0][j]==1)x[0][j]=-1;else x[0][j]=1;
}
}
stop=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(!stop)
{
nextp();
int sact=getsum();
if(smax<sact)
smax=sact;
}
g<<smax;
}