Cod sursa(job #1430177)

Utilizator Nadolu_Bogdan_Ionut_322CCNadolu Bogdan Ionut Nadolu_Bogdan_Ionut_322CC Data 7 mai 2015 23:02:08
Problema Jocul Flip Scor 100
Compilator java Status done
Runda Arhiva de probleme Marime 1.15 kb
//package flip;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {

	int n, m, sumaMax = -1;
	int[][] matrix = new int[16][16];
	int[] sign = new int[16];
	
	void computeSum () {
		
		int i, j, s, sum = 0;
		for (i = 0; i < m; i ++) {
			s = 0;
			for (j = 0; j < n; j++) {
				s += matrix[j][i] * sign[j];
			}
			sum += Math.abs(s);
		}
		sumaMax = Math.max(sum, sumaMax);
		
	}
	
	void backtracking (int line) {
		
		if (line == n) {
			computeSum();
		} else {
			sign[line] = -1;
			backtracking (line + 1);
			sign[line] = 1;
			backtracking (line + 1);
		}
		
	}
	
	public static void main (String[] args) throws IOException {
		
		Scanner scanner = new Scanner (new FileInputStream("flip.in"));
		PrintWriter writer = new PrintWriter ("flip.out");
		
		Main obj = new Main();
		
		obj.n = scanner.nextInt();
		obj.m = scanner.nextInt();
		int i, j;
		for (i = 0; i < obj.n; i ++) {
			for (j = 0; j < obj.m; j ++) {
				obj.matrix[i][j] = scanner.nextInt();
			}
		}
		
		obj.backtracking(0);
		writer.write(String.valueOf(obj.sumaMax));
		
		scanner.close();
		writer.close();
		
	}
	
}