Pagini recente » Cod sursa (job #232335) | Cod sursa (job #1899577) | Cod sursa (job #2378275) | Cod sursa (job #1607289) | Cod sursa (job #651171)
Cod sursa(job #651171)
#include <stdio.h>
#define INFINIT 300000000
int matr[17][17];
//int stiva[17];
int n,m;
inline int suma(int nr){
int i,j;
int suma=0,suma_col;
for(i=0;i<m;i++){
suma_col=0;
for(j=0;j<n;j++){//daca dau de vreo coloana cu suma negativa, o inm cu -1
if(/*stiva[i]*/(nr&(1<<i))==1){//impar
suma_col-=matr[i][j];
}else suma_col+=matr[i][j];
}
if(suma_col<0)suma-=suma_col;
else suma+=suma_col;
}
return suma;
}
int rezolva(){
int i=0;
int sum=-INFINIT;
int aux;
for(i=0;i<n;i++){
//pt configuratia i
aux=suma(i);
if(sum<aux)sum=aux;
}
return sum;
}
/*int bktr(){
int sum=-INFINIT;
int k=m;
int loc=k;
int aux;
//stiva e initializata cu 0 (nu schimb nimic)
while(loc>=0){
if(loc==k){
aux=suma();
if(sum<aux)sum=aux;
loc--;
}
stiva[loc]++;
if(stiva[loc]>1){//pas inapoi
stiva[loc]=-1;
loc--;
}else loc++;
}
return sum;
}*/
int main(){
int i,j;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&matr[i][j]);
printf("%d\n",rezolva());
return 0;
}