Pagini recente » Cod sursa (job #2723025) | Cod sursa (job #1173106) | Cod sursa (job #1204610) | Cod sursa (job #2623864) | Cod sursa (job #1738757)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int n,m,mat[18][18];
int sol[35];
int sMax;
void act_sMax()
{
int s=0;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
{
if(sol[i] != sol[n+j])
s += mat[i][j] * (-1);
else
s += mat[i][j];
}
if(s > sMax)
sMax = s;
}
void citeste()
{
in>>n>>m;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
in>>mat[i][j];
}
int init(int k)
{
sol[k] = 0;
}
int succesor(int k)
{
if(sol[k] < 2)
{
++sol[k];
return 1;
}
return 0;
}
int valid(int k)
{
return 1;
}
int solutie(int k)
{
if(k == n+m)
return 1;
return 0;
}
int bkt(int k)
{
init(k);
while(succesor(k))
{
if(valid(k))
{
if(solutie(k))
act_sMax();
else
bkt(k+1);
}
}
}
int main()
{
citeste();
bkt(1);
//afiseaza
out<<sMax<<"\n";
return 0;
}