Pagini recente » Cod sursa (job #1718813) | Cod sursa (job #1028377) | Cod sursa (job #2917475) | Cod sursa (job #848160) | Cod sursa (job #346794)
Cod sursa(job #346794)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int m,n;
long int max,mat[16][16],x[16];
int reactsume(int linie)
{
int i,j;
for (j=0;j<m;j++)
{
x[j]=0;
for(i=0;i<n;i++)
if (i==linie)
x[j]-=mat[i][j];
else
x[j]+=mat[i][j];
}
return 0;
}
int back(int k)
{
int t;
long int s=0;
if (k<m&&k>=0)
{
s=0;
for(t=0;t<m;t++)
s+=x[t];
if (s>max)
max=s;
back(k+1);
x[k]=-x[k];
s=0;
for(t=0;t<m;t++)
s+=x[t];
if (s>max)
max=s;
back(k+1);
}
return 0;
}
int main()
{
int i,j;
FILE *f;
f=fopen("flip.in","r");
fscanf(f,"%d",&n);
fscanf(f,"%d",&m);
for (i=0;i<n;i++)
for (j=0;j<m;j++)
fscanf(f,"%ld",&mat[i][j]);
fclose(f);
reactsume(-1);
back(0);
for(i=0;i<n;i++)
{
reactsume(i);
back(0);
}
f=fopen("flip.out","w");
fprintf(f,"%ld",max);
fclose(f);
return 0;
}