Pagini recente » Monitorul de evaluare | Cod sursa (job #2349521) | Monitorul de evaluare | Diferente pentru problema/maimute intre reviziile 11 si 10 | Cod sursa (job #3342493)
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
const int N = 16;
int v[N][N];
void flip(int p, int n)
{
int i;
for(i = 0; i < n; i++)
{
v[i][p] *= (-1);
}
}
int main()
{
int n, m, p, i, j, x, ma = 0, sum, sumgob;
cin >> n >> m;
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
cin >> v[i][j];
}
}
x = 0;
while(x < 1 << m)
{
p = 0;
while(p < m)
{
if((x >> p) & 1 == 1)
{
flip(p, n);
}
p++;
}
sumgob = 0;
for(i = 0; i < n; i++)
{
sum = 0;
for(j = 0; j < m; j++)
{
sum += v[i][j];
}
if(sum < 0)
{
sumgob += sum * (-1);
}
else sumgob += sum;
}
if(sumgob > ma)
ma = sumgob;
p = 0;
while(p < m)
{
if((x >> p) & 1 == 1)
{
flip(p, n);
}
p++;
}
x++;
}
cout << ma;
return 0;
}