Cod sursa(job #1462353)

Utilizator Calina_Cristian_Florin_323CACalina Cristian Florin Calina_Cristian_Florin_323CA Data 17 iulie 2015 20:29:20
Problema Jocul Flip Scor 0
Compilator java Status done
Runda Arhiva de probleme Marime 1.86 kb
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;


public class Flip {
	public static void main(String[] args) {
		int N,M;
		int [][]matrice;
		Scanner scanner = null;
		try {
			scanner = new Scanner(new FileReader("flip.in"));
			N = scanner.nextInt();
			M = scanner.nextInt();
			matrice = new int [N][M];
			for (int i = 0 ; i < N ; i ++){
				for (int j = 0 ; j < M ; j ++){
					matrice[i][j] = scanner.nextInt();
				}
			}
//			printMatrix(matrice,N,M);
			maxSumFliped(matrice,N,M);
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally{
			if (scanner != null){
				scanner.close();
			}
		}
	}

	private static void maxSumFliped(int[][] matrice, int N, int M) {
		int [] sumaLinii = new int[N];
		int [] sumaCol = new int[M];
		boolean ok = false;
//		boolean col = false;
		while (!ok){
			ok = true;
//			col = false;
			for (int i = 0 ; i < N ; i ++){
				for (int j = 0 ; j < M ; j++){
					sumaLinii[i] += matrice[i][j];
					sumaCol[j] += matrice[i][j];
				}
				if (sumaLinii[i] < 0){
					ok = false;
					for (int j = 0 ; j < M ; j ++){
						matrice[i][j] *= -1;
					}
				}
			}
//			if (!ok){
//				System.out.println("LINII MODIFICATE");
//				printMatrix(matrice,N,M);
//			}
			for (int k = 0 ; k < M ; k ++){
				if (sumaCol[k] < 0){
//					col = true;
					ok = false;
					for (int i = 0 ; i < N ; i ++){
						matrice[i][k] *= -1;
					}
				}
			}
//			if (col){
//				System.out.println("COLOANE MODIFICATE");
//				printMatrix(matrice,N,M);
//			}
		}
	}

//	private static void printMatrix(int[][] matrice, int N, int M) {
//		for (int i = 0; i < N; i++) {
//		    for (int j = 0; j < M; j++) {
//		        System.out.print(matrice[i][j] + " ");
//		    }
//		    System.out.print("\n");
//		}
//		 System.out.println();
//	}
}