Pagini recente » Cod sursa (job #711887) | Cod sursa (job #901147) | Cod sursa (job #796551) | Cod sursa (job #1885593) | Cod sursa (job #1013807)
#include <iostream>
#include <fstream>
#define kNMAX 17
#define kMMAX 17
int M1[kNMAX][kMMAX], sumaMax, semn[kMMAX];
int N, M;
void back(int k){
if (k < M){
semn[k + 1] = 1;
back(k + 1);
semn[k + 1] = 0;
back(k + 1);
}
int s = 0;
for(int i = 1; i <= N; i++){
M1[0][0] = 0;
for(int j = 1; j <= M; j++)
M1[0][0] += (semn[i] ? -M1[i][j] : M1[i][j]);
if (M1[0][0] > 0)
s += M1[0][0];
else
s -= M1[0][0];
}
if (s > sumaMax)
sumaMax = s;
return;
}
int main(){
std::fstream in, out;
in.open("flip.in", std::ios::in);
out.open("flip.out", std::ios::out);
in >> N >> M;
for(int i = 1; i <= N; i++){
for(int j = 1; j <= M; j++){
in >> M1[i][j];
}
}
//std::fill(semn, semn + kMMAX, 0);
back(0);
std::cout << sumaMax << std::endl;
in.close();
out.close();
return 0;
}