Pagini recente » Cod sursa (job #2922701) | Cod sursa (job #1405600) | Cod sursa (job #1129947) | Cod sursa (job #347176) | Cod sursa (job #716287)
Cod sursa(job #716287)
#include<fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n , m , s[100],nr=0,maxx=0,S[100],a[100][100];
void init(int k)
{
s[k]=-1;
}
int succesor(int k)
{
if(s[k]<1){
s[k]++;
return 1;
}
else
return 0;
}
int valid(int k)
{
return 1;
}
int solutie(int k)
{int ss=0 , i , j;
if(k==m){
for (i=1;i<=n;i++)
S[i] = 0;
for(i=1;i<=m;i++)
{
if(s[i]==1)
{
for(j=1;j<=n;j++)
S[j] += -a[j][i];
} else {
for(j=1;j<=n;j++)
S[j] += a[j][i];
}
}
for(i=1;i<=n;i++)
if(S[i]>0)ss=ss+S[i];
else ss=ss+(S[i]*-1);
if(ss>maxx)maxx=ss;
return 1;
}
else return 0;
}
void tipar()
{
return;
}
void bt(int k)
{
while(succesor(k))
if(valid(k))
if(solutie(k))
tipar();
else {
init(k+1);
bt(k+1);
}
}
int main()
{
f>>n;
f>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
f>>a[i][j];
s[1] = -1;
bt(1);
g<<maxx;
return 0;
}