Pagini recente » Cod sursa (job #1354231) | Cod sursa (job #503112) | Cod sursa (job #1143335) | Cod sursa (job #1667277) | Cod sursa (job #853954)
Cod sursa(job #853954)
#include<fstream>
#include<iostream>
using namespace std;
int N, M, v[20][20], comuta[20], maxim;
//comuta contine -1 si/sau 1
void back(int k){
int i, j, sum, temp;
if(k-1 == M){
temp = 0;
for(i = 1; i <= N; i++){
sum = 0;
for(j = 1; j <= M; j++) sum += v[i][j] * comuta[j];
if(sum < 0) temp -= sum;
else temp += sum;
maxim = maxim < temp ? temp : maxim;
}
}else{
comuta[k]=-1;
back(k+1);
comuta[k]=1;
back(k+1);
}
}//end of back
int main(){
ifstream fin("flip.in");
ofstream fout("flip.out");
int i, j;
fin >> N >> M;
for(i = 1; i <= N; i++)
for(j = 1; j <= M; j++)
fin >> v[i][j];
back(1);
fout << maxim << endl;
return 0;
}