Pagini recente » Cod sursa (job #2678565) | Cod sursa (job #2769235) | Cod sursa (job #1201606) | Cod sursa (job #1634148) | Cod sursa (job #339679)
Cod sursa(job #339679)
#include<fstream>
using namespace std;
int st[17],k,n,m,a[17][17],ev,as,bsum,csum,c[17][17];
ifstream in("flip.in");
ofstream out("flip.out");
void init()
{st[k]=-1;
}
int succesor()
{if(st[k]<1) {st[k]++;return 1;}
return 0;
}
int valid()
{return 1;}
int solutie()
{return n==k;
}
void tipar()
{for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
c[i][j]=a[i][j];
for(int i=1;i<=n;i++)
if(st[i]==0) for(int j=1;j<=m;j++) c[i][j]*=(-1);
for(int j=1;j<=m;j++)
{int s=0;
for(int i=1;i<=n;i++)
s+=c[i][j];
if(s<0) for(int i=1;i<=n;i++) c[i][j]*=(-1);
s=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s+=c[i][j];
if(s>bsum) bsum=s;
}
}
void back()
{k=1;init();
while(k>=1)
{int as=succesor();
if(as) if(solutie()) tipar();
else{k++;init();}
else k--;
}
}
int main()
{in>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
in>>a[i][j];
bsum=-9999999;
back();
out<<bsum;
return 0;}