Pagini recente » Cod sursa (job #2450993) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #2529341) | Cod sursa (job #1193778) | Cod sursa (job #769641)
Cod sursa(job #769641)
#include<cstdio>
using namespace std;
int N,M;
int mat[17][17];
long long sumM = 0 ;
int flipC[17];
void ReadData(){
int i,j;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&N,&M);
for(i=1;i<=N;++i)
for(j=1;j<=M;++j)
scanf("%d ",&mat[i][j]);
}
void Sum(){
int i,j;
long long suma = 0, sumaP=0 ;
for(i=1;i<=N;++i){
sumaP = 0;
for(j=1;j<=M;++j)
sumaP += mat[i][j] * flipC[j] ;
if(sumaP < 0)
sumaP = sumaP*(-1);
suma += sumaP;
}
if(suma > sumM)
sumM = suma;
}
void BackC(int top){
if(top == (M + 1) ) {
Sum();
return;
}
flipC[top] = -1;
BackC(top+1);
flipC[top] = 1;
BackC(top+1);
}
void WriteData(){
printf("%lld\n",sumM);
}
int main(){
ReadData();
BackC(1);
WriteData();
return 0;
}