Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.io.IOException;
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
- import java.util.*;
- import java.util.stream.Collectors;
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int[] sizes = Arrays.stream(scanner.nextLine().split(" "))
- .mapToInt(Integer::parseInt)
- .toArray();
- int[][] matrix = new int[sizes[0]][sizes[1]];
- for (int i = 0; i < sizes[0]; i++) {
- matrix[i] = Arrays.stream(scanner.nextLine().split(" "))
- .mapToInt(Integer::parseInt)
- .toArray();
- }
- int maxSum = Integer.MIN_VALUE;
- int row = 0;
- int col = 0; //трябва да намерим индексите на които сме срещнали maxSum
- //тук обхождаме вътрешна матрица, която започва от ред 1 до предпоследната колона:
- for (int r = 1; r < matrix.length - 1; r++) {
- for (int c = 1; c < matrix[r].length - 1; c++) {
- int sum = getSum(matrix, r, c);
- if (sum > maxSum) {
- maxSum = sum;
- row = r;
- col = c;
- }
- }
- }
- System.out.println("Sum = " + maxSum);
- row--;
- col--;
- for (int i = row; i < row + 3; i++) {
- for (int j = col; j < col + 3; j++) {
- System.out.print(matrix[i][j] + " ");
- }
- System.out.println();
- }
- }
- private static int getSum(int[][] matrix, int r, int c) {
- int sum = 0;
- sum += matrix[r][c];// това е средния елемент от който тръгваме
- //тук са всички съседни
- sum += matrix[r + 1][c];
- sum += matrix[r + -1][c];
- sum += matrix[r][c + 1];
- sum += matrix[r][c - 1];
- //взимам диагоналите:
- sum += matrix[r + 1][c + 1];
- sum += matrix[r - 1][c - 1];
- sum += matrix[r + 1][c - 1];
- sum += matrix[r - 1][c + 1];
- // друг начин е:
- // r--;
- // c--;
- // for (int i = r; i < r + 3; i++) {
- // for (int j = c; j < c + 3; j++) {
- // sum += matrix[i][j];
- //
- // }
- //
- // }
- return sum;
- }
- private static void PrintMatrix(int[][] matrix) {
- for (int r = 0; r < matrix.length; r++) {
- for (int c = 0; c < matrix[r].length; c++) {
- System.out.print(matrix[r][c] + " ");
- }
- System.out.println();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement