Pagini recente » Cod sursa (job #68170) | Cod sursa (job #2045689) | Cod sursa (job #1555918) | Cod sursa (job #1986550)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
long int n, m, a[20][20], s_in;
void citire()
{
f>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
f>>a[i][j];
}
int suma()
{
long int s=0;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
s=s+a[i][j];
return s;
}
void opus_l(int l)
{
for(int j=1; j<=m; j++)
a[l][j]=-a[l][j];
}
void opus_c(int c)
{
for(int i=1; i<=n; i++)
a[i][c]=-a[i][c];
}
void bk(int l, int c)
{
if(l>n || c>m)
return;
for(int i=l; i<=n; i++)
{
opus_l(i);
long int s=suma();
if(s>s_in)
s_in=s;
bk(l+1, c);
for(int j=1; j<=m; j++)
{
opus_c(j);
s=suma();
if(s>s_in)
s_in=s;
bk(l, c+1);
}
}
}
int main()
{
citire();
s_in=suma();
bk(1, 1);
g<<s_in;
}