Pagini recente » Cod sursa (job #2454706) | Cod sursa (job #2372838) | Cod sursa (job #2367559) | Cod sursa (job #1020094) | Cod sursa (job #501501)
Cod sursa(job #501501)
#include <stdio.h>
#include <limits.h>
FILE *f,*g;
int n,m,a[17][17],x[17],viz[17];
int smax=INT_MIN;
void subm()
{int i,j;
int s=0,sum=0;
for(i=1;i<=n;i++)
{s=0;
for(j=1;j<=m;j++)
{if(viz[j]==1)
s=s-a[i][j];
else
s+=a[i][j];
}
if(s>0)
sum+=s;
else
sum-=s;
}
if(sum>smax)
smax=sum;
}
void back(int k)
{int i;
for(i=x[k-1]+1;i<=m;i++)
{x[k]=i;
viz[i]=1;
subm();
if(k<m)
back(k+1);
viz[i]=0;
}
}
int main()
{int i,j;
f=fopen("flip.in","r");
g=fopen("flip.out","w");
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fscanf(f,"%d",&a[i][j]);
fclose(f);
back(1);
fprintf(g,"%d",smax);
fclose(g);
return 0;
}