Pagini recente » Cod sursa (job #507775) | Cod sursa (job #148234) | Cod sursa (job #2977119) | Cod sursa (job #2427489) | Cod sursa (job #1987191)
#include <fstream>
#include <cmath>
#define MAX 20
using namespace std;
ifstream fi("flip.in");
ofstream fo("flip.out");
int a[MAX][MAX],p[MAX],sc[MAX],m,n;
int sc2[MAX];
int rez;
///in p avem liniile care sunt schimbate
void bkt(int poz)
{
if (poz>1)
{
int sum=0;
for (int j=1; j<=m; j++)
sc2[j]=sc[j];
for (int i=1; i<poz; i++)
for (int j=1; j<=m; j++)
sc2[j]-=2*a[p[i]][j];
for (int j=1; j<=m; j++)
sum+=abs(sc2[j]);
rez=max(rez,sum);
}
for (int i=p[poz-1]+1; i<=n; i++)
{
p[poz]=i;
bkt(poz+1);
}
}
int main()
{
fi>>n>>m;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
{
fi>>a[i][j];
sc[j]+=a[i][j];
}
bkt(1);
fo<<rez;
fi.close();
fo.close();
return 0;
}