Sort by

recency

|

685 Discussions

|

  • + 0 comments
    public class Solution {
        public static void main(String[] args) throws IOException {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
    
            List<List<Integer>> arr = new ArrayList<>();
            
            IntStream.range(0, 6).forEach(i -> {
                try {
                    arr.add(
                        Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
                            .map(Integer::parseInt)
                            .collect(toList())
                    );
                } catch (IOException ex) {
                    throw new RuntimeException(ex);
                }
            });
            
            System.out.println(getMaximumSumOfHourglass(arr));
    
            bufferedReader.close();
        }
        
        private static int getMaximumSumOfHourglass( List<List<Integer>> arr){
            int max = Integer.MIN_VALUE;
            int sum;
            
            for(int i = 1; i < arr.size() - 1; i++) {
                for(int j = 1; j < arr.get(0).size() - 1; j++) {
                    sum = 0;
    
                    // Row above center point
                    sum += arr.get(i - 1).get(j - 1);
                    sum += arr.get(i - 1).get(j);
                    sum += arr.get(i - 1).get(j + 1);
                    // Center point
                    sum += arr.get(i).get(j);
                    
                    // Row below center point
                    sum += arr.get(i + 1).get(j - 1);
                    sum += arr.get(i + 1).get(j);
                    sum += arr.get(i + 1).get(j + 1);
                    
                    if(sum > max)
                        max = sum;
                }
            }
            
            return max;
        }
    }
    
  • + 0 comments
    import java.io.*;
    import java.math.*;
    import java.security.*;
    import java.text.*;
    import java.util.*;
    import java.util.concurrent.*;
    import java.util.regex.*;
    
    
    
    public class Solution {
        
        
        public static void winnable(List<List<Integer>> arr){
            
            int max_sum = Integer.MIN_VALUE;
            
            for (int i = 0; i <= 3; i++) {
                for (int j = 0; j <= 3; j++) {
                    int current_sum = arr.get(i).get(j) + arr.get(i).get(j+1)+ arr.get(i).get(j+2)
                                      +arr.get(i+1).get(j+1)+
                                      arr.get(i+2).get(j) + arr.get(i+2).get(j+1)+ arr.get(i+2).get(j+2);
                                      
                    if(current_sum>max_sum){
                        max_sum = current_sum;
    
                    }                   
                }
            }
            
            System.out.println(max_sum);
            
            
        }
        
        public static void main(String[] args) throws IOException {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
    
            List<List<Integer>> arr = new ArrayList<>();
            
            for (int i = 0; i < 6; i++) {
                String[] arrRowTempItems = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");
    
                List<Integer> arrRowItems = new ArrayList<>();
    
                for (int j = 0; j < 6; j++) {
                    int arrItem = Integer.parseInt(arrRowTempItems[j]);
                    arrRowItems.add(arrItem);
                }
    
                arr.add(arrRowItems);
            }
    
            bufferedReader.close();
            
            winnable(arr);
            
            
        }
    }
    
  • + 0 comments
        int sum[][] = new int[4][4];
    
        for(int x=0; x<4; ++x){
            for(int y=0; y<4; ++y) {
                sum[x][y] = arr.get(x).get(y)+arr.get(x).get(y+1)+arr.get(x).get(y+2)+
                        arr.get(x+1).get(y+1)+
                        arr.get(x+2).get(y)+arr.get(x+2).get(y+1)+arr.get(x+2).get(y+2);
            }
        }
    
        int num = 0;
        int max = sum[0][0];
    
        for(int x=0; x<4; ++x) {
            for (int y = 0; y < 4; ++y) {
                num = sum[x][y];
                if (num > max) {
                    max = num;
                }
            }
        }
    
        System.out.print(max);
    
  • + 0 comments

    here's a method much cleaner for List input

    private static int printMaxSum(List<List<Integer>> matrix){
            int ans=Integer.MIN_VALUE;
            for(int i=0;i<=3;i++){
                
                List<Integer> row1 = matrix.get(i);
                List<Integer> row2 = matrix.get(i+1);
                List<Integer> row3 = matrix.get(i+2);
                for(int j=0; j<=3;j++){
                    int sum=row1.get(j+0)+row1.get(j+1)+row1.get(j+2)
                    +row2.get(j+1)+row3.get(j+0)+row3.get(j+1)+row3.get(j+2);
                    if(sum>ans)
                        ans=sum;
                }
            }
            return ans;
        }
    
  • + 0 comments

    import java.io.; import java.math.; import java.security.; import java.text.; import java.util.; import java.util.concurrent.; import java.util.regex.*;

    public class Solution { public static int maxHourglassSum(int[][] arr) { int maxSum = Integer.MIN_VALUE;

        for (int i = 0; i < 4; i++) { // we go from row 0 to 3
            for (int j = 0; j < 4; j++) { // the same with col we go 0 to 3
                int hourglassSum = (
                    arr[i][j] + arr[i][j+1] + arr[i][j+2] +
                    arr[i+1][j+1] +
                    arr[i+2][j] + arr[i+2][j+1] + arr[i+2][j+2]
                );
    
                maxSum = Math.max(maxSum, hourglassSum);
            }
        }
        return maxSum;
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[][] arr = new int[6][6];
    
        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6; j++) {
                arr[i][j] = scanner.nextInt();
            }
        }
    
        scanner.close();
        System.out.println(maxHourglassSum(arr));
    }
    

    }