Cod sursa(job #820073)

Utilizator cosmin1123Didii Theodor-Cosmin cosmin1123 Data 19 noiembrie 2012 23:43:46
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.01 kb
#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 , sum = 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++){
		sum += suma(v[i], n);
		
		}	
	printf("%d",sum);


}