Advertisement
CuBG

Untitled

May 20th, 2023
773
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | Software | 0 0
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3.  
  4. public class MaximalSum {
  5.     public static void main(String[] args) {
  6.         Scanner sc = new Scanner(System.in);
  7.  
  8.         int[] range = Arrays.stream(sc.nextLine().split("\\s+"))
  9.                 .mapToInt(Integer::parseInt)
  10.                 .toArray();
  11.  
  12.         int[][] matrix = fillMatrix(sc, range[0], range[1]);
  13.  
  14.         int maxSum = 0;
  15.         int[][] matrix3x3 = new int[3][3];
  16.  
  17.         int rowLimit = range[0] - 2;
  18.         int colLimit = range[1] - 2;
  19.         for (int row = 0; row < rowLimit; row++) {
  20.             for (int col = 0; col < colLimit; col++) {
  21.                 int sum = matrix[row][col]
  22.                         + matrix[row][col + 1]
  23.                         + matrix[row][col + 2]
  24.                         + matrix[row + 1][col]
  25.                         + matrix[row + 1][col + 1]
  26.                         + matrix[row + 1][col + 2]
  27.                         + matrix[row + 2][col]
  28.                         + matrix[row + 2][col + 1]
  29.                         + matrix[row + 2][col + 2];
  30.  
  31.                 if (sum > maxSum) {
  32.                     maxSum = sum;
  33.                     matrix3x3 = new int[][] {
  34.                             {matrix[row][col], matrix[row][col + 1], matrix[row][col + 2]},
  35.                             {matrix[row + 1][col], matrix[row + 1][col + 1], matrix[row + 1][col + 2]},
  36.                             {matrix[row + 2][col], matrix[row + 2][col + 1], matrix[row + 2][col + 2]}
  37.                     };
  38.                 }
  39.             }
  40.         }
  41.         System.out.println("Sum = " + maxSum);
  42.         printFinalMatrix(matrix3x3);
  43.     }
  44.  
  45.     private static void printFinalMatrix(int[][] matrix3x3) {
  46.         Arrays.stream(matrix3x3).forEach(r -> {
  47.             for (int col : r) {
  48.                 System.out.print(col + " ");
  49.             }
  50.             System.out.println();
  51.         });
  52.     }
  53.  
  54.     private static int[][] fillMatrix(Scanner sc, int row, int col) {
  55.         int[][] matrix = new int[row][col];
  56.  
  57.         for (int r = 0; r < row; r++) {
  58.             int[] arr = Arrays.stream(sc.nextLine().split("\\s+"))
  59.                     .mapToInt(Integer::parseInt)
  60.                     .toArray();
  61.             matrix[r] = arr;
  62.         }
  63.         return matrix;
  64.     }
  65. }
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement