Pagini recente » Cod sursa (job #1442329) | Cod sursa (job #1736051) | Cod sursa (job #721258) | Cod sursa (job #3264433) | Cod sursa (job #3039747)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n, m;
int v[20][20];
vector<int> lin_flip;
long long ans = 0;
void flip(int k)
{
for(int i = 1; i<=m; i++)
{
v[k][i] = v[k][i] * (-1);
}
}
void bk(int k)
{
if(k == n)
{
for(int i = 0; i<lin_flip.size(); i++)
{
flip(lin_flip[i]);
}
long long sumcol = 0;
long long total = 0;
for(int j = 1; j<=m; j++)
{
sumcol = 0;
for(int i = 1; i<=n; i++)
{
sumcol += v[i][j];
}
total += abs(sumcol);
}
ans = max(ans, total);
for(int i = 0; i<lin_flip.size(); i++)
{
flip(lin_flip[i]);
}
return;
}
else
{
lin_flip.push_back(k);
bk(k+1);
lin_flip.push_back(k);
bk(k+1);
}
}
int main()
{
f>>n>>m;
for(int i = 1; i<=n; i++)
{
for(int j = 1; j<=m; j++)
{
f>>v[i][j];
}
}
bk(1);
g<<ans;
return 0;
}