Pagini recente » Cod sursa (job #747838) | Cod sursa (job #2694015) | Cod sursa (job #1920358) | Cod sursa (job #3266824) | Cod sursa (job #1317222)
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<fstream>
using namespace std;
int a[17][17], col[17],maxx;
void sum(int n,int m){
int total=0;
for(int i=1;i<=n;i++){
int s=0;
for(int j=1;j<=m;j++)
s=s+col[j]*a[i][j];
if(s<0) total+= s*(-1); //flip line i
else total+=s;
}
if(total>maxx) maxx=total;
}
// back => col[] - columns to be multiplied by -1
void back(int k, int n, int m){
if(k==m+1) sum(n,m);
else{
col[k]=-3;
while(col[k]<1){
col[k]+=2;
back(k+1,n,m);
}
}
}
int main(){
int n,m;
ifstream in; ofstream out;
in.open("flip.in"); out.open("flip.out");
out.clear();
in>>n>>m;
maxx=16*16*1000000*(-1);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
in>>a[i][j];
back(1,n,m);
out<<maxx;
return 0;
}