Pagini recente » Cod sursa (job #2196027) | Cod sursa (job #675727) | Cod sursa (job #2118788) | Cod sursa (job #3261635) | Cod sursa (job #820075)
Cod sursa(job #820075)
#include <stdio.h>
#include <stdlib.h>
void flip( int a[],int dim)
{
int i;
for( i = 0; i < dim; i++)
a[i] = a[i] * (-1);
}
void flipCol( int *a[],int j,int dim)
{
int i;
for( i = 0; i < dim; i++)
a[i][j] = a[i][j] * (-1);
}
int suma( int a[], int dim){
int i, sum = 0;
for( i = 0; i < dim; i++)
sum += a[i];
return sum;
}
int sumaCol( int *a[], int dim, int j){
int i, sum = 0;
for( i = 0; i < dim; i++)
sum += a[i][j];
return sum;
}
int main(){
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
int n ,m , sum1 = 0,sum2 =0, i, j;
scanf("%d",&m);
scanf("%d",&n);
int **v;
v = malloc(m * sizeof(int*));
for( i = 0; i < m; i++)
v[i] = malloc( n * sizeof(int*));
for( i = 0; i < m; i++){
for( j = 0; j < n; j++){
scanf("%d",v[i] + j);
}
}
for( i = 0; i < m; i++){
if( suma(v[i], n) < 0){
flip(v[i], n);
}
}
for( i = 0; i < n; i++){
if( sumaCol(v, m,i) < 0)
flipCol(v,i,m);
}
for( i = 0; i < m; i++){
sum1 += suma(v[i], n);
}
for( i = 0; i < n; i++){
if( sumaCol(v, m,i) < 0)
flipCol(v,i,m);
}
for( i = 0; i < m; i++){
if( suma(v[i], n) < 0){
flip(v[i], n);
}
}
for( i = 0; i < m; i++){
sum2 += suma(v[i], n);
}
if(sum1 > sum2)
printf("%d",sum1);
else
printf("%d",sum2);
return 0;
}