Pagini recente » Brasov | Monitorul de evaluare | Profil StefanIordache2007 | Niciomare | Cod sursa (job #2023862)
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n, m, flip[16][16], row[16];
long maxsum = -100000000;
void compare(){
int i, j, sum = 0, col;
for(j = 0; j < m; j++){
col = 0;
for(i = 0; i < n; i++){
if(row[i]){
col += -flip[i][j];
}
else{
col += flip[i][j];
}
}
if(col < 0) col = -col;
sum += col;
}
if(sum > maxsum) maxsum = sum;
}
void bkt(int i){
if(i >= n){
compare();
return;
}
row[i] = 0;
bkt(i+1);
row[i] = 1;
bkt(i+1);
}
int main()
{
int i, j, suma = 0;
f >> n >> m;
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
f >> flip[i][j];
bkt(0);
g << maxsum;
return 0;
}