Pagini recente » Borderou de evaluare (job #1687310) | Borderou de evaluare (job #865736) | Borderou de evaluare (job #2448582) | Borderou de evaluare (job #2792868) | Cod sursa (job #2412490)
#include <bits/stdc++.h>
using namespace std;
ifstream fi("flip.in");
ofstream fo("flip.out");
int A[20][20];
int n,m;
long long sum_max;
void sum(){
long long sum=0,s=0;
for(int j=1;j<=m;j++){
s=0;
for(int i=1;i<=n;i++)
s+=A[i][j];
if(s<0)
s*=-1;
sum+=s;
}
sum_max=max(sum_max,sum);
}
void change(int k){
for(int j=1;j<=m;j++)
A[k][j]*=-1;
}
void backtracking(int k){
if(k>n)
sum();
else{
backtracking(k+1);
change(k);
backtracking(k+1);
}
}
int main(){
fi>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
fi>>A[i][j];
backtracking(1);
fo << sum_max;
return 0;
}