Pagini recente » Cod sursa (job #1528655) | Cod sursa (job #2386340) | Cod sursa (job #1660368) | Cod sursa (job #38485) | Cod sursa (job #715059)
Cod sursa(job #715059)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("flip.in");
ofstream f2("flip.out");
int m,n;
long long tabel[17][17];
bool sm[17]={false},sm2[17]={false};
long long s=0;
void suma() {
long long s2=0;
long long col[17]={0};
long long vec[17][17];
for(int i=1;i<=m;i++) {
for(int j=1;j<=n;j++) {
if(sm[i]) vec[i][j]=(-1)*tabel[i][j];
else vec[i][j]=tabel[i][j];
col[j]+=vec[i][j];
}
}
for(int i=1;i<=n;i++)
if(col[i]<0) sm2[i]=true;
for(int i=1;i<=m;i++) {
for(int j=1;j<=n;j++) {
if(sm2[j]) vec[i][j]*=-1;
s2+=vec[i][j];
}
}
//cout<<s2<<" ";
if(s<s2) s=s2;
}
void back(int k) {
if(k==n+1) suma();
else {
sm[k]=1;back(k+1);
sm[k]=0;back(k+1);
}
}
int main() {
f>>m>>n;
for(int i=1;i<=m;i++) {
for(int j=1;j<=n;j++) {
f>>tabel[i][j];
}
}
back(1);
f2<<s;
return 0;
}