Pagini recente » Cod sursa (job #2444074) | Cod sursa (job #482112) | Cod sursa (job #1549672) | Cod sursa (job #384174) | Cod sursa (job #3193250)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int fr[18], n, m;
int v[18][18];
int semnc[18], semnl[18];
int maxsum = 0;
void bk( int poz )
{
if( poz == n+1 )
{
for( int j = 1; j <= m; ++j )
{
int sumcol = 0;
for( int i = 1; i <= n; ++i )
{
sumcol+=v[i][j]*semnl[i];
}
if( sumcol < 0 )
semnc[j] = -1;
}
int sum = 0;
for( int i = 1; i <= n; ++i )
{
for( int j = 1; j <= m; ++j )
{
sum+=v[i][j]*semnl[i]*semnc[j];
}
}
if( sum > maxsum )
maxsum = sum;
for( int i = 1; i <= 16; ++i )
semnc[i] = 1;
}
else
{
semnl[poz] = 1;
bk(poz+1);
semnl[poz] = -1;
bk(poz+1);
}
}
int main()
{
f >> n >> m;
for( int i = 1; i <= n; ++i )
{
semnl[i] = 1;
for( int j = 1; j <= m; ++j )
{
semnc[j] = 1;
f >> v[i][j];
}
}
bk(1);
g << maxsum;
return 0;
}