Pagini recente » Cod sursa (job #787227) | Cod sursa (job #2540650) | Cod sursa (job #759663) | Cod sursa (job #3143260) | Cod sursa (job #2439903)
#include <fstream>
#include <limits.h>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int z[20],a[20][20],n,m,smax=INT_MIN;
void flip()
{
int suma=0,slinie=0;
for(int i=1;i<=n;i++)
{
suma=0;
for(int j=1;j<=m;j++)
suma=suma+z[j]*a[i][j];
if(suma<0)
suma=suma*(-1);
slinie=slinie+suma;
}
if(slinie>smax)
smax=slinie;
}
int count=0;
void bkt(int k)
{
if(k<=m)
{
z[k]=1;
count++;
bkt(k+1);
z[k]=-1;
bkt(k+1);// trebuie sa se duca la m de la toate elementele
}
else
flip();
}
int main()
{
in>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
in>>a[i][j];
bkt(1);
out<<smax;
return 0;
}