Pagini recente » Cod sursa (job #2948966) | Cod sursa (job #178959) | Cod sursa (job #2121464) | Cod sursa (job #1758481) | Cod sursa (job #1245862)
#include<fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
long long a[20][20],x[20],sum[20],maxim=-2000000000,i,j,n,m,w[20],sumt;
void back(int m){
if(x[0]==1){
return;
}else{
int s=0;
for(i=m;i>0;i--){
if(x[i]==2){
x[i-1]++;
x[i]=0;
}else{
break;
}
}
for(i=1;i<=m;i++){
if(x[i]==1){
for(j=1;j<=n;j++){
sum[i]+=(a[j][i]*-1);
}
}else{
if(x[i]==0){
s+=sum[i];
}
}
}
if(maxim<s){
maxim=s;
for(i=1;i<=m;i++){
w[i]=x[i];
}
}
x[m]++;
back(m);
}
}
int main(){
fin>>n>>m;
for(j=1;j<=n;j++){
for(i=1;i<=m;i++){
fin>>a[j][i];
}
}
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
sum[i]+=a[j][i];
}
}
back(m);
for(i=1;i<=m;i++){
if(w[i]==1){
for(j=1;j<=n;j++){
a[j][i]*=-1;
}
}
}
for(i=1;i<=n;i++){
sum[i]=0;
for(j=1;j<=m;j++){
sum[i]+=a[i][j];
}
}
for(i=1;i<=n;i++){
if(sum[i]<0){
sum[i]*=-1;
sumt+=sum[i];
}else{
sumt+=sum[i];
}
}
fout<<sumt;
return 0;
}