Pagini recente » Cod sursa (job #2971640) | Cod sursa (job #1002095) | Cod sursa (job #1339743) | Cod sursa (job #1854889) | Cod sursa (job #2045648)
#include <fstream>
using namespace std;
ifstream fi("flip.in");
ofstream fo("flip.out");
int N,M,A[20][20],B[20][20];
int rez;
int S[20];
int SC[20];
void g(int k)
{
int i,s;
if (k==N)
{
/// se obtine matricea B
for (int i=1;i<=N;i++)
for (int j=1;j<=M;j++)
if (S[i]==0)
B[i][j]=A[i][j];
else
B[i][j]=-A[i][j];
s=0;
for (int i=1;i<=M;i++)
SC[i]=0;
for (int i=1;i<=N;i++)
for (int j=1;j<=M;j++)
SC[j]+=B[i][j];
for (int i=1;i<=M;i++)
if (SC[i]>=0)
s+=SC[i];
else
s-=SC[i];
if (s>rez)
rez=s;
}
else
for (i=0;i<=1;i++)
{
S[k+1]=i;
g(k+1);
}
}
int main()
{
fi>>N>>M;
for (int i=1;i<=N;i++)
for (int j=1;j<=M;j++)
fi>>A[i][j];
rez=-1;
g(0);
fo<<rez;
fi.close();
fo.close();
return 0;
}