Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.78 KB | None | 0 0
  1. package MultidimensionalArrays;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Scanner;
  5.  
  6. public class MaximumSum {
  7.     public static void main(String[] args) {
  8.         Scanner scan = new Scanner(System.in);
  9.  
  10.         int[] matrixData = Arrays.stream(scan.nextLine().
  11.                 split("\\s+")).
  12.                 mapToInt(Integer::parseInt).
  13.                 toArray();
  14.         int[][] matrix = new int[matrixData[0]][matrixData[1]];
  15.  
  16.         for (int row = 0; row < matrix.length; row++) {
  17.             String[] rowData = scan.nextLine().split("\\s+");
  18.  
  19.             for (int col = 0; col < matrix[0].length; col++) {
  20.                 matrix[row][col] = Integer.parseInt(rowData[col]);
  21.             }
  22.         }
  23.  
  24.         int maxSum = Integer.MIN_VALUE;
  25.         int maxRow = -1;
  26.         int maxCol = -1;
  27.         for (int row = 0, col = 0; row + 2 < matrix.length;) {
  28.  
  29.             int sum = 0;
  30.             for (int i = row; i < row + 3; i++) {
  31.                 for (int j = col; j < col + 3; j++) {
  32.                     sum += matrix[i][j];
  33.                 }
  34.             }
  35.  
  36.             if (sum > maxSum) {
  37.                 maxSum = sum;
  38.                 maxRow = row;
  39.                 maxCol = col;
  40.             }
  41.  
  42.             col++;
  43.  
  44.             if (col + 2 >= matrix[0].length) {
  45.                 col = 0;
  46.                 row++;
  47.             }
  48.         }
  49.  
  50.         System.out.println("Sum = " + maxSum);
  51.         printMaxSumMatrix(matrix, maxRow, maxCol);
  52.     }
  53.  
  54.     private static void printMaxSumMatrix(int[][] matrix, int maxRow, int maxCol) {
  55.         for (int i = maxRow; i < maxRow + 3; i++) {
  56.             for (int j = maxCol; j < maxCol + 3; j++) {
  57.                 System.out.print(matrix[i][j] + " ");
  58.             }
  59.             System.out.println();
  60.         }
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement