Pagini recente » Cod sursa (job #2800025) | Cod sursa (job #1135286) | Cod sursa (job #27658) | Cod sursa (job #2860542) | Cod sursa (job #1873050)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int N,M,A[20][20],ch[20],rs;
int calcsum(int ch[],int x,bool u){
int p=0;
for (int i=1;i<=M;i++){
if (u){
if (ch[i]) p+=-A[x][i];
else p+=A[x][i];
}
else {
if (ch[i]) p+=A[x][i];
else p+=-A[x][i];
}
}
return p;
}
void check(int ch[]){
int partsum=0,sum1=0;
/*for (int j=1;j<=M;j++)
for (int i=1;i<=N;i++) if (ch[j]) sum1+=-A[i][j];
else sum1+=A[i][j];
*/
for (int i=1;i<=N;i++){
// partsum+=max(calcsum(ch,i,0),calcsum(ch,i,1));
int x1=calcsum(ch,i,0);
if (x1<0)x1=-x1;
partsum+=x1;
}
rs=max(rs,partsum);
}
void back(int ch[],int x){
if (x==M) {
ch[x]=0;
check(ch);
ch[x]=1;
check(ch);
return ;
}
ch[x]=0;
back(ch,x+1);
ch[x]=1;
back(ch,x+1);
}
int main(){
fin >>N>>M;
for (int i=1;i<=N;i++)
for (int j=1;j<=M;j++) fin >>A[i][j];
back(ch,1);
fout <<rs;
return 0;
}