Pagini recente » Cod sursa (job #1252741) | Cod sursa (job #2297685) | Cod sursa (job #1788558) | Cod sursa (job #328639) | Cod sursa (job #422168)
Cod sursa(job #422168)
#include<fstream>
using namespace std;
void read();
void back(int k);
void doit();
void write();
int n,m;
int a[17][17],b[17][17],smax=-30000;
int chs[17];
int main() {
read();
back(1);
doit();
write();
return 0;
}
void read() {
ifstream fin("flip.in");
fin>>n>>m;
for (int i=1;i<=n;++i)
for (int j=1;j<=m;++j)
fin>>a[i][j];
fin.close();
}
void back(int k) {
int i,j,l;
for (i=chs[k-1]+1;i<=n;++i) {
chs[k]=i;
for (j=1;j<=n;++j)
for (l=1;l<=m;++l)
b[j][l]=a[j][l];
for (j=1;j<=k;++j)
for (l=1;l<=m;++l)
b[chs[j]][l]*=-1;
doit();
if (k==n)
return;
else
back(k+1);
}
}
void doit() {
int i,j;
int sn,sp,sact=0;
for (j=1;j<=m;++j) {
sp=sn=0;
for (i=1;i<=n;++i)
if (b[i][j]>0)
sp+=b[i][j];
else sn+=b[i][j];
sn*=-1;
if (sn>sp)
sact+=sn-sp;
else
sact+=sp-sn;
}
if (sact>smax)
smax=sact;
}
void write() {
ofstream fout("flip.out");
fout<<smax;
fout.close();
}