Pagini recente » Cod sursa (job #2073849) | Cod sursa (job #700085) | Cod sursa (job #2930664) | Cod sursa (job #1756476) | Cod sursa (job #1211068)
#include<cstdio>
FILE *in,*out;
int n,m,i,j,v[16][16],flag,poz1,poz2,s,min1,min2,smax=0;
bool lin[16],col[16];
void backtrack()
{
int s=0,i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
s+=v[i][j];
if(s>smax)smax=s;
//linii
for(i=0;i<n;i++)
if(!lin[i])
{
for(j=0;j<m;j++)v[i][j]*=-1;
lin[i]=true;
backtrack();
lin[i]=false;
for(j=0;j<m;j++)v[i][j]*=-1;
}
//coloane
for(j=0;j<n;j++)
if(!col[i])
{
for(i=0;i<n;i++) v[i][j]*=-1;
col[i]=true;
backtrack();
col[i]=false;
for(i=0;i<n;i++)v[i][j]*=-1;
}
}
int main()
{
in=fopen("flip.in","r");
fscanf(in,"%d %d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(in,"%d",&v[i][j]);
fclose(in);
backtrack();
out=fopen("flip.out","w");
fprintf(out,"%d",smax);
fclose(out);
}