Didart

Wrong Measurements

Jan 3rd, 2023
1,118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.37 KB | None | 0 0
  1. package MultidimensionalArrays;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Scanner;
  5.  
  6. public class WrongMeasurements {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         int rows = Integer.parseInt(scanner.nextLine());
  11.  
  12.         int[][] matrix = readMatrix(rows, scanner);
  13.         int cols = matrix[0].length;
  14.        
  15.         int[] coordinates = Arrays.stream(scanner.nextLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();
  16.         int value = matrix[coordinates[0]][coordinates[1]];
  17.  
  18.         int[][] trueMatrix = new int[rows][cols];
  19.  
  20.         for (int row = 0; row < rows; row++) {
  21.             for (int col = 0; col < matrix[row].length; col++) {
  22.                 if (matrix[row][col] == value) {
  23.                     int leftSide = 0;
  24.                     int rightSide = 0;
  25.                     int upSide = 0;
  26.                     int downSide = 0;
  27.                     if (row < matrix.length - 1 && matrix[row + 1][col] != value) {
  28.                         downSide = matrix[row + 1][col];
  29.                     }
  30.                     if (row > 0 && matrix[row - 1][col] != value) {
  31.                         upSide = matrix[row - 1][col];
  32.                     }
  33.                     if (col > 0 && matrix[row][col - 1] != value) {
  34.                         leftSide = matrix[row][col - 1];
  35.                     }
  36.                     if (col < matrix[row].length - 1 && matrix[row][col + 1] != value) {
  37.                         rightSide = matrix[row][col + 1];
  38.                     }
  39.                     trueMatrix[row][col] = downSide + upSide + rightSide + leftSide;
  40.                 } else {
  41.                     trueMatrix[row][col] = matrix[row][col];
  42.                 }
  43.             }
  44.         }
  45.         for (int row = 0; row < rows; row++) {
  46.             for (int col = 0; col < trueMatrix[row].length; col++) {
  47.                 System.out.print(trueMatrix[row][col] + " ");
  48.             }
  49.             System.out.println();
  50.         }
  51.     }
  52.  
  53.     public static int[][] readMatrix(int rows, Scanner scanner) {
  54.         int[][] matrix = new int[rows][];
  55.         for (int row = 0; row < rows; row++) {
  56.             matrix[row] = Arrays
  57.                     .stream(scanner.nextLine().split("\\s+"))
  58.                     .mapToInt(Integer::parseInt)
  59.                     .toArray();
  60.         }
  61.         return matrix;
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment