Pagini recente » Cod sursa (job #867023) | Cod sursa (job #2896839) | Cod sursa (job #842422) | Cod sursa (job #1945685) | Cod sursa (job #856012)
Cod sursa(job #856012)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
#include <deque>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
#define nmax 17
#define ceva (1<<16)
#define ll long long
int a[nmax][nmax], col[nmax], colXor[nmax];
int n, m;
void citeste(){
f >> n >> m;
for(int i=1; i<=n; ++i){
for(int j=1; j<=m; ++j){
f >> a[i][j];
}
}
}
inline int Xor(int X){
return -X;
}
void rezolva(){
int lim = (1<<n); int S = 0;
for(int conf=0; conf<lim; ++conf){
for(int j=1; j<=m; ++j) col[j] = 0, colXor[j] = 0;
for(int k=0; k<n; ++k){
if ( conf & (1<<k) ){
for(int j=1; j<=m; ++j){
col[j] += Xor(a[k+1][j]);
colXor[j] +=(a[k+1][j]);
}
}else {
for(int j=1; j<=m; ++j){
col[j] += a[k+1][j];
colXor[j] +=Xor(a[k+1][j]);
}
}
}
int newS = 0;
for(int j=1; j<=m; ++j){
newS += max(col[j], colXor[j]);
}
S = max(S, newS);
}
cout << S << "\n";
g << S << "\n";
}
int main(){
citeste();
rezolva();
f.close();
g.close();
return 0;
}