Madhu1

public class Main
{
    public static int maxSubarrayValue(int[] mea) {
        // Initialize val to a very small number
        int val = -123456789;
        int n = mea.length;

        // Iterate over all possible subarray sizes
        for (int count = 1; count <= n; count++) {
            // Iterate over all possible starting indices for subarrays of the current size
            for (int i = 0; i <= n - count; i++) {
                // Extract the subarray
                int[] subarray = new int[count];
                System.arraycopy(mea, i, subarray, 0, count);

                // Find the minimum value in the subarray
                int minVal = findMin(subarray);

                // Calculate the value for this subarray
                int currentVal = count * minVal;

                // Update the maximum value
                val = Math.max(val, currentVal);

                // Print debug information
                System.out.println("Checking the min in " + java.util.Arrays.toString(subarray));
                System.out.println("min is " + minVal + " actual val is " + currentVal);
            }
        }

        // If val is still the initial very small number, return 0
        if (val == -123456789) {
            return 0;
        }

        return val;
    }

    private static int findMin(int[] array) {
        int min = array[0];
        for (int i = 1; i < array.length; i++) {
            if (array[i] < min) {
                min = array[i];
            }
        }
        return min;
    }
    
    public static void main(String[] args) {
        int[] mea = {10,80,30,500,70,40,20};
        int result = maxSubarrayValue(mea);
        System.out.println("Max value: " + result);
    }
}