Pagini recente » Cod sursa (job #3193401) | Cod sursa (job #1507401) | Cod sursa (job #536122) | Cod sursa (job #2245781) | Cod sursa (job #116557)
Cod sursa(job #116557)
#include<stdio.h>
int a[17][17],s[17],sc[17],m;
inline int abs1(int &x)
{
if(x<0)
return -x;
return x;
}
inline void inverseaza (int l)
{
for(int j=0;j<m;++j)
sc[j]-=a[l][j]<<1;
}
int main()
{
int n,i,j,max=0,mc,q,x,l;
FILE *in=fopen("flip.in","r"), *out=fopen("flip.out","w");
fscanf(in,"%d%d",&n,&m);
for(i=0;i<n;++i)
for(j=0;j<m;++j)
{
fscanf(in,"%d",&a[i][j]);
s[j]+=a[i][j];
}
for(j=0;j<m;++j)
max+=abs1(s[j]);
fclose(in);
q=1<<n;
for(i=4;i<=q;++i)
{
mc=0;
x=i;
l=0;
for(j=0;j<m;++j)
sc[j]=s[j];
while(x)
{
if(x&1)
inverseaza(l);
x>>=1;
l++;
}
for(j=0;j<m;++j)
mc+=abs1(sc[j]);
if(mc>max)
max=mc;
}
fprintf(out,"%d\n",max);
fclose(out);
return 0;
}