Pagini recente » Cod sursa (job #996200) | Cod sursa (job #271309) | Cod sursa (job #3221906) | Cod sursa (job #2120948) | Cod sursa (job #328767)
Cod sursa(job #328767)
#include<stdio.h>
#include<string.h>
int flip(int n, int m, int a[16][16]){
int sc1[16],sc[16],i,j,s,k,sum=0;
for(j=0;j<m;j++){
s=0;
for(i=0;i<n;i++)
s+=a[i][j];
sc[j]=s;
sum+=sc[j];
}
int max=sum;
for (i=1;i < 1<<(n-1); i++){
memcpy(sc1,sc,m*sizeof(int));
for(j=0;j<n;j++)
if ( i & 1<<j )
for(s=0;s<m;s++)
sc1[s]=sc1[s] + 2*(-a[j][s]);
sum=0;
for ( j=0; j<m; j++)
if(sc1[j]<0)
sum=sum-sc1[j];
else
sum=sum+sc1[j];
if (sum>max)
max=sum;
}
return max;
}
int main(){
int i,j;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
int n,m;
scanf("%d%d",&n,&m);
int a[16][16];
for ( i=0;i<n;i++ )
for( j=0;j<m;j++ )
scanf("%d",&a[i][j]);
printf("%d",flip(n,m,a));
return 0;
}