Pagini recente » Cod sursa (job #355982) | Cod sursa (job #2273402) | Cod sursa (job #1106838) | Cod sursa (job #3190284) | Cod sursa (job #2407970)
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
typedef long long int ll;
const int Nmax = 18;
int mat[Nmax][Nmax];
int n,m;
ll summax;
void afisaremat(){
int i,j;
for(i = 1 ; i <= n ; i++){
for(j = 1 ; j <= m ; j++)
g << mat[i][j] << " ";
g << "\n";
}
}
void calculeaza(){
ll sum = 0, s = 0;
int i,j;
for(j = 1 ; j <= m; j++){
s = 0;
for(i = 1; i <= n; i++)
s += mat[i][j];
if(s < 0)
s *= -1;
sum += s;
}
summax = max(summax, sum);
}
void change(int k){
int i;
for(i = 1 ; i <= m; i++)
mat[k][i] *= -1;
}
void back(int k){
if(k > n)
calculeaza();
else{
change(k);
back(k + 1);
change(k);
back(k + 1);
}
}
int main(){
int i,j;
f >> n >> m;
for(i = 1 ; i <= n; i++)
for(j = 1 ; j <= m ; j++)
f >> mat[i][j];
//afisaremat();
back(1);
g << summax;
return 0;
}