Pagini recente » Cod sursa (job #2863385) | Cod sursa (job #1991824) | Cod sursa (job #3198743) | Cod sursa (job #1796373) | Cod sursa (job #926129)
Cod sursa(job #926129)
#include<stdlib.h>
#include<stdio.h>
int n,m,a[17][17],i,j,x[257];
long sum,maxi;
int suma()
{
long x = 0;
for(int k = 0; k < n; k++)
for(int l = 0; l < m; l++)
x += a[k][l];
return x;
}
void operare()
{
printf("\n");for(i = 1; i <= n; i++)
if(x[i]==1)
for(j = 0; j < m; j++)
a[i-1][j]=a[i-1][j]*-1;
for(i = n+1; i <= n+m; i++)
if(x[i]==1)
for(j = 0; j < n; j++)
a[j][i-n-1]=a[j][i-n-1]*-1;
if(suma() >= maxi)
maxi=suma();
for(i = 1; i <= n; i++)
if(x[i]==1)
for(j = 0; j < m; j++)
a[i-1][j]=a[i-1][j]*-1;
for(i = n+1; i <= n+m; i++)
if(x[i]==1)
for(j = 0; j < n; j++)
a[j][i-n-1]=a[j][i-n-1]*-1;
}
void bk(int k)
{ int i;
for(i = 0; i <= 1; i++)
{ x[k] = i;
if (k == n+m) operare();
else bk(k+1);
}
}
int main()
{
FILE*in,*out;
in = fopen("flip.in","r");
out = fopen("flip.out","w");
fscanf(in,"%d",&n);
fscanf(in,"%d",&m);
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
fscanf(in,"%d",&a[i][j]);
bk(1);
fprintf(out,"%d",maxi);
fclose(in);
fclose(out);
return 0;
}