Pagini recente » Cod sursa (job #2559176) | Cod sursa (job #571011) | Cod sursa (job #2707747) | Cod sursa (job #1614826) | Cod sursa (job #769640)
Cod sursa(job #769640)
#include<cstdio>
using namespace std;
int N,M;
int mat[20][20];
long long sumM = 0 ;
int flipL[20], flipC[20];
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] * flipL[i];
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 BackL(int top){
if(top == N + 1 ) {
BackC(1);
return;
}
flipL[top] = -1;
BackL(top+1);
flipL[top] = 1;
BackL(top+1);
}
void WriteData(){
printf("%lld\n",sumM);
}
int main(){
ReadData();
BackL(1);
WriteData();
return 0;
}