Pagini recente » Cod sursa (job #774434) | Cod sursa (job #1476155) | Cod sursa (job #215371) | Cod sursa (job #919654) | Cod sursa (job #535461)
Cod sursa(job #535461)
#include<stdio.h>
#include<stdlib.h>
int v[20],n,m;
long int a[19][19],s;
void citire()
{
FILE *f=fopen("flip.in","rt");
fscanf(f,"%d %d",&n,&m);
int i,j; s=0;
long int c=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fscanf(f,"%ld",&a[i][j]);
for(j=1;j<=m;j++)
{c=0;
for(i=1;i<=n;i++)
c+=a[i][j];
a[n+1][j]=c;
}
fclose(f);
}
void suma(int k)
{
int i,j;
long int sum=0;
for(i=1;i<=m;i++)
{ a[n+2][i]=a[n+1][i];
for(j=0;j<=k;j++)
a[n+2][i]=a[n+2][i]+2*(-1)*a[v[j]][i];
if(a[n+2][i]<0) a[n+2][i]=a[n+2][i]*(-1);
sum+=a[n+2][i];
}
if(sum>s) s=sum;
}
void comb(int k,int p)
{
int i;
if(k==0) for(i=1;i<=n;i++) {v[k]=i; if(k==(p-1)) suma(k); else comb(k+1,p);}
else
for(i=v[k-1]+1;i<=n;i++)
{v[k]=i;
if(k==(p-1)) suma(k);
else comb(k+1,p);
}
}
int main()
{
citire();
int i;
for(i=1;i<=n;i++)
comb(0,i);
FILE *h=fopen("flip.out","wt");
fprintf(h,"%ld",s);
fclose(h);
return 0;
}