Pagini recente » Cod sursa (job #212785) | Cod sursa (job #2603582) | Cod sursa (job #3226697) | Cod sursa (job #1995515) | Cod sursa (job #1462412)
import java.io.FileReader;
import java.io.PrintWriter;
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();
int [] sumaLinii = new int[N];
int [] sumaCol = new int[M];
int sumaTotala = 0;
matrice = new int [N][M];
for (int i = 0 ; i < N ; i ++){
for (int j = 0 ; j < M ; j ++){
matrice[i][j] = scanner.nextInt();
sumaLinii[i] += matrice[i][j];
sumaCol[j] +=matrice[i][j];
sumaTotala += matrice[i][j];
}
}
doit(matrice,N,M,sumaLinii,sumaCol,sumaTotala);
} catch (Exception e) {
e.printStackTrace();
}
finally{
if (scanner != null){
scanner.close();
}
}
}
private static void doit(int[][] matrice, int N, int M, int[] sumaLinii, int[] sumaCol, int sumaTotala) {
printMatrix(matrice,N,M);
int posLine = -1;
int [] posCol = new int [M];
boolean ok = false;
while (!ok){
ok = true;
for (int i = 0 ; i < N ; i ++){
for (int j = 0 ; j < M ; j++){
if (sumaLinii[i] < 0){
ok = false;
matrice[i][j] *= -1;
if (posLine != i){
posLine = i;
sumaLinii[i] *= -1;
sumaTotala += 2 * sumaLinii[i];
}
}
if (sumaCol[j] < 0){
ok = false;
matrice[i][j] *= -1;
if (posCol[j] == 0){
posCol[j] ++;
sumaCol[j] *= -1;
sumaTotala += 2 * sumaCol[j];
}
}
}
}
}
printMatrix(matrice,N,M);
System.out.println(sumaTotala);
PrintWriter writer;
try {
writer = new PrintWriter("flip.out", "UTF-8");
writer.println(sumaTotala);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
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();
}
}