Pagini recente » Cod sursa (job #346636) | Cod sursa (job #2808014) | Cod sursa (job #3033603)
#include <fstream>
#include <climits>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int a[20][20],i,j,n,m,k,elem,semn,x;
long long sum_lin[20],maxi,s,s1,sum_lin_act[20];
int main()
{
cin>>n>>m;
maxi=LLONG_MIN;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
cin>>a[i][j],sum_lin[i]+=a[i][j];
for(k=0; k<=(1<<m)-1; k++)
{
for(i=1; i<=n; i++)
sum_lin_act[i]=sum_lin[i];
x=k;
elem=0;
s=0;
while(x!=0)
{
elem++;
if(x%2==1)
for(i=1; i<=n; i++)
sum_lin_act[i]=sum_lin_act[i]-2*a[i][elem];
x=x/2;
}
for(i=1; i<=n; i++)
{
if(sum_lin_act[i]<0)
s-=sum_lin_act[i];
else
s+=sum_lin_act[i];
}
maxi=max(maxi,s);
}
cout<<maxi;
return 0;
}
/*or(i=1; i<=n; i++)
{
suma_lin=0;
for(j=1; j<=m; j++)
suma_lin+=a[i][0]*a[i][j]*a[0][j];
if(suma_lin<0)
suma_lin=-suma_lin;
s=s+suma_lin;
}
maxi=max(s,maxi);
for(j=1;j<=m;j++)
{
suma_col=0;
for(i=1;i<=n;i++)
suma_col+=a[0][j]*a[i][j]*a[i][0];
if(suma_col<0)
suma_col=-suma_col;
s1=s1+suma_col;
}
maxi=max(s1,maxi);*/
///int x, y, elem, n, z;
/*cin>>n;
for(int i=1;i<=n;i++)
{
cin>>elem;
x = x | (1<<elem);
}
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>elem;
y = y | (1<<elem);
}
z=x&y;//intersectia
elem=0;
while(z!=0)
{
if((z&1)!=0)
cout<<elem<<" ";
z =(z>>1);
elem++;
}*/