Pagini recente » Cod sursa (job #309843) | Statistici Dayana Babtan (Dayana1900) | Istoria paginii utilizator/jhonybici | Cod sursa (job #809742) | Cod sursa (job #552147)
Cod sursa(job #552147)
#include <stdio.h>
long matrix[16][16];
int n, m;
long maxim;
void calc_max()
{
long s1=0;
int i, j;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
s1+=matrix[i][j];
if(s1>maxim) maxim = s1;
}
void bk(int i, int j)
{
int k;
if(i<n && j<m)
{
calc_max();
for(k=0; k<n; k++)
matrix[i][k]*=-1;
bk(i+1, j);
for(k=0; k<n; k++)
matrix[i][k]*=-1;
calc_max();
for(k=0; k<m; k++)
matrix[k][j]*=-1;
bk(i, j+1);
for(k=0; k<m; k++)
matrix[k][j]*=-1;
}
}
int main ()
{
int i, j;
long s1=0, s2=0;
FILE *fi, *fo;
fi=fopen("flip.in","r");
fo=fopen("flip.out","w");
fscanf(fi,"%d %d", &n, &m);
for(i=0; i<n; i++)
for(j=0; j<m; j++)
fscanf(fi,"%d", &matrix[i][j]);
for(i=0; i<n; i++)
{
s1=0;
s2=0;
for(j=0; j<m; j++)
{
s1+=matrix[i][j];
s2+=matrix[i][j]*(-1);
}
if(s2>s1)
for(j=0; j<m; j++)
matrix[i][j]*=-1;
}
for(j=0; j<m; j++)
{
s1=0;
s2=0;
for(i=0; i<n; i++)
{
s1+=matrix[i][j];
s2+=matrix[i][j]*(-1);
}
if(s2>s1)
for(i=0; i<n; i++)
matrix[i][j]*=-1;
}
for(i=0; i<n; i++)
{
s1=0;
s2=0;
for(j=0; j<m; j++)
{
s1+=matrix[i][j];
s2+=matrix[i][j]*(-1);
}
if(s2>s1)
for(j=0; j<m; j++)
matrix[i][j]*=-1;
}
for(j=0; j<m; j++)
{
s1=0;
s2=0;
for(i=0; i<n; i++)
{
s1+=matrix[i][j];
s2+=matrix[i][j]*(-1);
}
if(s2>s1)
for(i=0; i<n; i++)
matrix[i][j]*=-1;
}
s1=0;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
s1+=matrix[i][j];
fprintf(fo,"%d", s1);
/*
bk(0,0);
fprintf(fo,"%d", maxim);
*/
fclose(fi);
fclose(fo);
}