Pagini recente » Cod sursa (job #472972) | Cod sursa (job #803384)
Cod sursa(job #803384)
#include<stdio.h>
#include<stdlib.h>
int max=-256000001;
int suma_matrice(int k,int **v,int N,int M)
{
int i,j,sum=0,sum_temp;
for(i=0;i<N;++i)
{
sum_temp=0;
for(j=0;j<M;++j)
sum_temp+=v[i][j];
if(sum_temp < 0)
sum_temp*=-1;
sum+=sum_temp;
}
return sum;
}
void back(int k,int **v,int N,int M)
{
int i,sum;
if(k == M)
{
sum=suma_matrice(k,v,N,M);
if(sum > max)
max=sum;
}
else
{
back(k+1,v,N,M);
for(i=0;i<N;++i)
v[i][k]*=-1;
back(k+1,v,N,M);
}
}
int main()
{
int N,M,**v,i,j;
FILE *f=fopen("flip.in","rt");
FILE *g=fopen("flip.out","wt");
fscanf(f,"%i%i",&N,&M);
v=(int **)malloc(N*sizeof(int *));
for(i=0;i<N;++i)
v[i]=(int *)malloc(M*sizeof(int));
for(i=0;i<N;++i)
for(j=0;j<M;++j)
fscanf(f,"%i",&v[i][j]);
fclose(f);
back(0,v,N,M);
fprintf(g,"%i",max);
fclose(g);
return 0;
}