Pagini recente » Cod sursa (job #545261) | Cod sursa (job #2701513) | Cod sursa (job #1958315) | Cod sursa (job #379752) | Cod sursa (job #1462359)
import java.io.FileReader;
import java.util.Scanner;
public class Main {
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();
// }
}