Pagini recente » Cod sursa (job #2368301) | Cod sursa (job #3131890) | Cod sursa (job #2537881) | Cod sursa (job #384836) | Cod sursa (job #2419916)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m,a[17][17];
long long maxim=-1000000;
int takec[17];
long long calculez(){
long long sum=0;
for(int i=0;i<n;++i)
{
long long s=0;
for(int j=0;j<m;++j)//takec detine semnul comutatorului coloanelor
s+=(a[i][j]*takec[j]);
sum+=abs(s);
}
return sum;//sum detine suma tutoror elementelor
}
void bktrc(int x){
if(x==m)
{
if(calculez()>maxim)
maxim=calculez();
}else{
takec[x]=1;
bktrc(x+1);
takec[x]=-1;
bktrc(x+1);
}
}
int main() {
fin>>n>>m;
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
fin>>a[i][j];
fin.close();
bktrc(0);
fout<<maxim;
fout.close();
return 0;
}