Pagini recente » Cod sursa (job #177851) | Cod sursa (job #1796392) | Cod sursa (job #1686067) | Cod sursa (job #1753183) | Cod sursa (job #1442280)
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
int s[MAX],suma_maxima=0,a[MAX][MAX];
void calculeaza(int n, int m){
int plm=0,sum,i,j;
for(i=0;i<n;i++){
sum=0;
for(j=0;j<m;j++)
sum+=(s[j]) *(a[i][j]);
if(sum<0) plm-=sum;
else plm+=sum;
}
if (plm>suma_maxima) suma_maxima=plm;
}
void back(int k,int n, int m){
int i;
if(k>m) calculeaza(n,m);
else
for(i=-1;i<2;i++)
if(i!=0){
s[k]=i;
back(k+1,n,m);
}
}
void main(){
FILE *f=fopen("flip.txt","r");
FILE *g=fopen("flipo.txt","w");
if(f==NULL){
perror("Eroare alocare");
exit(-1);
}
int n,m,i,j;
fscanf(f,"%d %d", &n, &m);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
fscanf(f,"%d",&a[i][j]);
back(1,n,m);
fprintf(g,"%d",suma_maxima);
fclose(g);
free(g);
fclose(f);
free(f);
}