Cod sursa(job #667816)

Utilizator luca.boieruBoieru Luca luca.boieru Data 23 ianuarie 2012 19:44:44
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>

int a[20][20];

int main(){
	
	freopen("flip.in", "r", stdin);
	freopen("flip.out", "w", stdout);
	
	int n, m;
	
	scanf("%d%d", &n, &m);
	
	int st = 0;
	
	for(int i = 1; i <= n; ++ i){
		
		int sp = 0, sm = 0;
		
		for(int j = 1; j <= m; ++ j){
			scanf("%d", &a[i][j]);
			sp += a[i][j];
			sm -= a[i][j];
		}
		
		if(sp < sm){
			for(int j = 1; j <= m; ++ j)
				a[i][j] = - a[i][j];
			st += sm;
		}
		else st += sp;
	}
	
	for(int j = 1; j <= m; ++ j){
		
		int sp = 0, sm = 0, sminus = 0;
		
		for(int i = 1; i <= n; ++ i){
			sp += a[i][j];
			sm -= a[i][j];
		}
		
		if(sp < sm){
			for(int i = 1; i <= n; ++ i){
				if(a[i][j] > 0) sminus += a[i][j];
				a[i][j] = - a[i][j];
			}
			st += (sm - sminus);
		}
	}
	printf("%d", st);
	
	return 0;
}