Pagini recente » Cod sursa (job #439219) | Cod sursa (job #1407988) | Cod sursa (job #2461173) | Cod sursa (job #3166859) | Cod sursa (job #29225)
Cod sursa(job #29225)
#include<math.h>
#include<fstream.h>
#define input "flip.in"
#define output "flip.out"
long r[20][20],s=0,lin[20],smax;
int n,m;
void pas2()
{
int i,j,sp=s,k;
for(i=1;i<=n;i++)
for(j=1;j<=m&&lin[i]==1;j++)
{
sp-=r[i][j];
sp+=r[i][j]*(-1);
}
for(j=1;j<=m;j++)
{
k=0;
for(i=1;i<=n;i++)
k=(lin[i]==1)?k-r[i][j]:k+r[i][j];
if(k<0)
sp=sp-2*k;
}
if(sp>smax)
smax=sp;
}
void btk(int k)
{
if(k==n+1)
pas2();
else
{
lin[k]++;
btk(k+1);
lin[k]--;
btk(k+1);
}
}
int main()
{
int i,j;
ifstream fin(input);
fin>>n;
fin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
fin>>r[i][j];
s+=r[i][j];
}
smax=s;
btk(1);
fin.close();
ofstream fout(output);
fout<<smax;
return 0;
}