Pagini recente » Cod sursa (job #711722) | Cod sursa (job #980503) | Cod sursa (job #2718662) | Cod sursa (job #2352823) | Cod sursa (job #670393)
Cod sursa(job #670393)
#include<fstream>
#include<iostream>
using namespace std;
int a[17][17], i, j, m, n, st[257], s, mymax=0, k;
void init()
{st[k]=0;}
int succesor()
{if(st[k]==0)
{st[k]=-1; return 1;}
else if(st[k]==-1)
{st[k]=1; return 1;}
else
return 0;
}
int valid()
{if(k<=n+m)
return 1;
else
return 0;
}
int solutie()
{if(k==n+m)
return 1;
else
return 0;
}
void bkt()
{int as=1;
k=1;
init();
while(k>0)
{do{}while((as=succesor()) && !valid());
if(as)
if(solutie())
{s=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
s+=a[i][j]*st[1+i]*st[1+n+j];
if(s>mymax)
mymax=s;
}
else
{k++; init();}
else
k--;
}
}
int main()
{ifstream f("flip.in");
f>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
f>>a[i][j];
f.close();
bkt();
ofstream g("flip.out");
g<<mymax;
cout<<mymax;
g.close();
return 0;
}