Pagini recente » Cod sursa (job #1237868) | Borderou de evaluare (job #3153156) | Cod sursa (job #1093004)
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int m ,n ,sumax=0 ,uz[17] ,a[33] , v[17][17] ,st[17] ,sum=0;
void calc();
void bkt();
void bkt(int niv)
{
if(niv>m)
{
calc();
}
for(int i=1;i<=2*m;i++)
{
if(uz[i]==0)
{
st[niv]=a[i];
uz[i]=1;
bkt(niv+1);
uz[i]=0;
}
}
}
void calc()
{
for(int i=1;i<=n;i++)
{
int s=0;
for(int j=1;j<=m;j++)
{
if(st[j]==0)s-=v[i][j];
else s+=v[i][j];
}
if(s<0)s=-s;
sum+=s;
}
if(sum>sumax)sumax=sum;
sum=0;
}
int main()
{
int i ,j;
in>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
in>>v[i][j];
}
for(i=m+1;i<=m*2;i++)
{
a[i]=1;
}
bkt(1);
out<<sumax;
return 0;
}