Pagini recente » Istoria paginii runda/bidonel | Cod sursa (job #1962218) | Cod sursa (job #1136054) | Cod sursa (job #1216238) | Cod sursa (job #972418)
Cod sursa(job #972418)
#include <iostream>
#include <fstream>
using namespace std;
int mat [16][16];
int n, m, ma;
int insum(){
int r = 0;
for (int i = 0 ; i < m ; ++i){
int t = 0;
for (int j = 0; j < n ; ++j){
t += mat[j][i];
}
r += (t<0)? t * (-1): t;
}
return r;
}
void bt (int r){
if ( r == n ){
int t = insum();
if (t> ma) ma = t;
}
else
{
for (int i = -1; i <= 1; ++i){
// cout << "pas "<< r << " "<< i << endl;
if (i){
for (int j = 0 ; j < m ; ++j){
mat[r][j] *= i;
}
// for (int k = 0 ; k < n ; k++){
// for (int l = 0 ; l < m ; ++l)
// cout << mat[k][l] << " ";
// cout << endl;
// }
// cout << endl;
bt (r+1);
// cout << "iesit " << endl;
for (int j = 0 ; j < m ; ++j){
mat[r][j] *= i;
}
// for (int k = 0 ; k < n ; k++){
// for (int l = 0 ; l < m ; ++l)
// cout << mat[k][l] << " ";
// cout << endl;
// }
// cout << endl;
}
}
}
}
int main (){
ma = 0;
ifstream ifs("flip.in", ios_base::in);
ofstream ofs("flip.out", ios_base::out);
int sum;
int result = 0;
if (!ifs.is_open()|| !ofs.is_open() )return -1;
ifs >> n;
ifs >> m;
for (int i = 0 ; i < n ; ++i){
for (int j = 0; j < m ; ++j){
ifs >> mat[ i ][ j ] ;
}
}
bt (0);
ifs.close();
ofs<< ma << endl;
ofs.close();
return 0;
}