Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void main(String[] args) throws IOException {
- BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
- int[][] matrix = readMatrix(rd);
- int[][] bestM = new int[3][3];
- int max = 0;
- for (int i = 0; i < matrix.length - 2; i++) {
- for (int j = 0; j < matrix[i].length - 2; j++) {
- int[][] mat = getNewMatrix(matrix, i, j);
- int sum = getSum(mat);
- if (sum > max) {
- max = sum;
- bestM = mat;
- }
- }
- }
- System.out.println("Sum = " + max);
- printMatrix(bestM);
- }
- private static int getSum(int[][] mat) {
- int sum = 0;
- for (int[] ints : mat)
- sum += Arrays.stream(ints).sum();
- return sum;
- }
- private static int[][] getNewMatrix(int[][] matrix, int i, int j) {
- int[][] mat = new int[3][3];
- for (int k = 0; k < 3; k++)
- mat[k] = Arrays.copyOfRange(matrix[i + k], j, j + 3);
- return mat;
- }
- private static void printMatrix(int[][] ar) {
- for (int[] nums : ar)
- System.out.println(Arrays.toString(nums).replaceAll("[\\[\\],]", ""));
- }
- private static int[][] readMatrix(BufferedReader rd) throws IOException {
- int[] size = Arrays.stream(rd.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
- int[][] mat = new int[size[0]][size[1]];
- for (int i = 0; i < mat.length; i++)
- mat[i] = Arrays.stream(rd.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
- return mat;
- }
Add Comment
Please, Sign In to add comment