Pagini recente » Cod sursa (job #1507615) | Cod sursa (job #2887077) | Cod sursa (job #2393181) | Cod sursa (job #1130935) | Cod sursa (job #1044324)
#include<fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
struct matrice{
int a[17][17];
};
matrice a,b;
int n,m,k,x[17],smax=-1000000000;
void init()
{
x[k]=-3;
}
int succesor()
{
x[k]+=2;
if(x[k]<=1)
return 1;
else
return 0;
}
int sol()
{
return (k==n);
}
int valid()
{
return 1;
}
void back()
{
int as;
k=1;
init();
while(k>0)
{
while((as=succesor())&& !valid());
if(!as) k--;
else
{
if(sol())
{
b=a;
int s=0;
for(int j=1;j<=m;j++)
{
int s1=0;
for(int i=1;i<=n;i++)
{
b.a[i][j]=b.a[i][j]*x[i];
s1+=b.a[i][j];
}
if(s1<0)
s-=s1;
else
s+=s1;
}
if(s>smax)
smax=s;
}
else
{
k++;
init();
}
}
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
f>>a.a[i][j];
}
}
back();
g<<smax;
f.close();
g.close();
return 0;
}