Pagini recente » Cod sursa (job #1765503) | Cod sursa (job #2709487) | Cod sursa (job #175624) | Cod sursa (job #2685268) | Cod sursa (job #159487)
Cod sursa(job #159487)
#include <stdio.h>
#include <math.h>
int n,m;
int a[20][20];
int c;
long summax=0;
void Attempt (void) {
int i,j;
int sum1,sum2,sumb=0;
for (i=0; i<m; i++) {
sum1=0;
sum2=0;
for (j=0; j<n; j++) {
if (c&1<<j) { sum1+=a[j][i]*(-1); } //sum2+=a[j][i]; }
else { sum1+=a[j][i]; } // sum2+=a[j][i]*(-1); };
};
sum2=-sum1;
sumb+=(sum1>sum2?sum1:sum2);
};
summax=(sumb>summax?sumb:summax);
};
int main (void) {
FILE * fi = fopen("flip.in","rt"); FILE * fo = fopen("flip.out","wt");
fscanf(fi,"%d %d",&n,&m);
// long maxsum=0;
int i,j;
for (i=0; i<n; i++) {
for (j=0; j<m; j++) {
fscanf(fi,"%d",&a[i][j]);
};
};
// for (i=0; i<n; i++) {
// c[i]=0;
// };
for (c=0; c<pow(2,n-1); c++){
Attempt();
};
/* char AllOK=0;
while (!AllOK) {
AllOK=0;
if (c[n-1]==0) { c[n-1]=1; AllOK=0; }
else if (c[n-1]==1) {
c[n-1]=0;
c[n-2]++;
for (i=n-2; i>0; i--) {
if (c[i]>1) { c[i]=0; c[i-1]++; };
};
if (c[0]>1) AllOK=1;
};
if (!AllOK) {
for (i=0; i<n; i++) {
// printf("%c",c[i]+1);
};
// printf("\n");
};
Attempt();
};*/
fprintf(fo,"%ld",summax);
fclose(fi); fclose(fo);
return 0;
};