Pagini recente » Cod sursa (job #1344250) | Cod sursa (job #3255259) | Cod sursa (job #1144982) | Cod sursa (job #1581041) | Cod sursa (job #864097)
Cod sursa(job #864097)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int v[16][16];
int n,m;
int maxim,minus_linie[16],minus_coloana[16];
int semn(int i,int j)
{
if(minus_linie[i]^minus_coloana[j]==1)
return -1;
return 1;
}
int suma_coloana(int coloana)
{
int i;
int s=0;
for(i=0;i<n;i++)
{
s+=(v[i][coloana]*semn(i,coloana));
}
return s;
}
int abs(int a)
{
if(a>0)
return a;
return ((-1)*(a));
}
void back_coloana(int poz)
{
int suma=0,i;
for(i=0;i<m;i++)
suma+=abs(suma_coloana(i));
if(suma>maxim)
maxim=suma;
}
void back_linie(int poz)
{
if(poz==n)
back_coloana(0);
else
{
back_linie(poz+1);
minus_linie[poz]=1;
back_linie(poz+1);
minus_linie[poz]=0;
}
}
int main()
{
int i,j;
fin>>n>>m;
maxim=-256000256; //mai mult trebuie
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fin>>v[i][j];
back_linie(0);
fout<<maxim<<'\n';
fin.close();
fout.close();
return 0;
}