Pagini recente » Cod sursa (job #798156) | Cod sursa (job #885739) | Cod sursa (job #2310164) | Cod sursa (job #227668) | Cod sursa (job #1807752)
#include<fstream>
#include<vector>
#include<string>
#include<stdlib.h>
#define modulo 666013
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
string sir;
int i, n, k, j,contor,st[1000],sol,x,y,m,maxim,maximLocal;
int a[30][30], b[30][30];
int power2(int x)
{
int result = 1;
for(int i =1 ;i<=x;i++)
{
result = result*2;
}
return result;
}
int main()
{
fin >> n >> m;
for(i = 1; i <= n; i++)
{
for(j = 1; j <= m; j++)
{
fin >> a[i][j];
maxim += a[i][j];
}
}
for(i = 1; i <= n; i++)
{
for(j = 1; j <= m; j++)
{
////fout << a[i][j] << " ";
}
//fout <<"\n";
}
int powM = power2(m);
for(i = 1; i <= powM; i++)
{
st[1]++;
int sum = 0 ,selected = 0;
for(j=1;j<=m;j++)
{
st[j + 1] += st[j] / 2;
st[j] = st[j] % 2;
//fout << st[j]<<" ";
}
for(j = 1;j <= n; j++)
{
for(k = 1;k <= m; k++)
{
if(st[k] == 0)
b[j][k] = a[j][k];
else
b[j][k] = -a[j][k];
//fout << b[j][k]<<" ";
}
//fout<<"\n";
}
maximLocal = 0;
for(j = 1;j <= n; j++)
{
int sum = 0;
for(k = 1;k <= m; k++)
{
sum += b[j][k];
}
maximLocal += abs(sum);
}
maxim = max(maxim,maximLocal);
}
fout << maxim << "\n";
}