Find maximum volume of a cuboid

You are given a perimeter & the area. Your task is to return the maximum volume that can be made in the form of a cuboid from the given perimeter and surface area.
Note: Round off to 2 decimal places and for the given parameters, it is guaranteed that an answer always exists.

Examples

Input: perimeter = 22, area = 15
Output: 3.02
Explanation: The maximum attainable volume of the cuboid is 3.02
Input: perimeter = 20, area = 5
Output: 0.33 Explanation: The maximum attainable volume of the cuboid is 0.33
Expected Time Complexity: O(1)
Expected Auxiliary Space: O(1)

Constraints :
1 ≤ perimeter ≤ 109
1 ≤ area ≤ 109


Approach 01:

#include <iostream>
#include <cmath>
#include <iomanip>

class Solution {
public:
    double maxVolume(double perimeter, double area) {
        // Calculate the adjusted perimeter
        double adjusted_perimeter = perimeter - std::sqrt(std::pow(perimeter, 2) - (24 * area));
        
        // Calculate the squared adjusted perimeter
        double squared_adjusted_perimeter = std::pow((adjusted_perimeter / 12), 2);
        
        // Calculate the adjusted height
        double adjusted_height = (perimeter / 4) - (2 * (adjusted_perimeter / 12));
        
        // Calculate the maximum volume
        double maximum_volume = squared_adjusted_perimeter * adjusted_height;
        
        // Return the maximum volume
        return maximum_volume;
    }
};
import math
class Solution:
    def maxVolume(self, perimeter, area):
        
        # Calculate the adjusted perimeter
        adjusted_perimeter = perimeter - math.sqrt(math.pow(perimeter, 2) - (24 * area))
        
        # Calculate the squared adjusted perimeter
        squared_adjusted_perimeter = math.pow((adjusted_perimeter / 12), 2)
        
        # Calculate the adjusted height
        adjusted_height = (perimeter / 4) - (2 * (adjusted_perimeter / 12))
        
        # Calculate the maximum volume
        maximum_volume = squared_adjusted_perimeter * adjusted_height
        
        # Return the maximum volume
        return maximum_volume

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top