Pagini recente » Cod sursa (job #1138476) | Monitorul de evaluare | Cod sursa (job #2244703) | Cod sursa (job #1042138) | Cod sursa (job #1051695)
#include <stdio.h>
int sum_matrix(int matrix[16][16],int lines, int cols)
{
int sum = 0;
int i,j;
for (i=0; i < lines; i++)
for (j=0; j < cols; j++)
sum+= matrix[i][j];
return sum;
}
int change_line(int matrix[16][16], int cols, int no_line)
{
int j;
int sum = 0;
for (j=0; j< cols; j++)
sum += matrix[no_line][j];
if(sum < 0)
{
for (j=0; j< cols; j++)
matrix[no_line][j] *= (-1);
return 1;
}
return 0;
}
int change_col(int matrix[16][16], int lines, int no_col)
{
int i;
int sum = 0;
for (i = 0; i< lines; i++)
sum += matrix[i][no_col] ;
if(sum < 0)
{
for (i= 0; i< lines; i++)
matrix[i][no_col]*=(-1) ;
return 1;
}
return 0;
}
int main()
{
freopen ("flip.in","r",stdin);
freopen ("flip.out","w",stdout);
int n,m;
int matrix[16][16];
scanf("%d", &n);
scanf("%d", &m);
int i=0, j=0;
for (i =0 ; i < n; i++ )
for (j=0; j < m; j++)
scanf("%d", &matrix[i][j]);
int max_sum = sum_matrix(matrix,n,m);
int sum = 0;
int it_n = 0;
int it_m = 0;
for(it_n = 0; it_n < n; it_n++)
{
if(change_line(matrix, m, it_n))
{
sum = sum_matrix(matrix,n,m);
if(sum > max_sum)
max_sum = sum;
for (it_m=0; j <it_m; it_m++)
{
if(change_col(matrix, n, it_m))
{
sum= sum_matrix(matrix,n,m);
if(sum > max_sum)
max_sum = sum;
}
}
}
}
for (it_m=0; it_m <m; it_m++)
{
if(change_col(matrix, n, it_m))
{
sum = sum_matrix(matrix,n,m);
if(sum > max_sum)
max_sum = sum;
for(it_n = 0; it_n < n; it_n++)
{
if(change_line(matrix, m, it_n))
{
sum= sum_matrix(matrix,n,m);
if(sum > max_sum)
max_sum = sum;
}
}
}
}
printf("%d",max_sum);
fclose(stdout);
fclose(stdin);
return 0;
}