Pagini recente » Cod sursa (job #2148543) | Cod sursa (job #1144678) | Cod sursa (job #1691164) | Cod sursa (job #2169081) | Cod sursa (job #1733656)
//idee
//fac bk pe linii (-1 sau 1)
// si coloanele le iau pozitive(in modul-nu mai are rost bk pe coloane)
#include<fstream>
using namespace std;
int i,j,n,m,sum,a[20][20],x[20];
ifstream f("flip.in");
ofstream g("flip.out");
int suma()
{
int i,j,s,s1=0;
for(j=1;j<=m;j++)
{
s=0;
for(i=1;i<=n;i++)
s+=(a[i][j]*x[i]);
if(s<0) s=s*-1;//inmultesc coloana cu -1
s1+=s; //se iau sumele pozitive!!!!!!
}
return s1;
}
void backtr(int k)//genereaza pe coloane -1 sau 1
{ int i,ss;
if(k==n+1)
{ss=suma();if(sum<ss) sum=ss;}
else
for(i=-1;i<=1;i+=2)
{
x[k]=i;
backtr(k+1);
}
}
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
f>>a[i][j];
backtr(1);
g<<sum;
return 0;
}