You are given two integers red and blue representing the count of red and blue colored balls. You have to arrange these balls to form a triangle such that the 1st row will have 1 ball, the 2nd row will have 2 balls, the 3rd row will have 3 balls, and so on.
All the balls in a particular row should be the same color, and adjacent rows should have different colors.
Return the maximum height of the triangle that can be achieved.
class Solution {
public:
int maxHeightOfTriangle(int red, int blue)
{
return max(helper(red, blue), helper(blue, red));
}
private:
int helper(int red,int blue)
{
int h=0,i=1;
while(true)
{
if(i%2==1)
{
if(red >= i)
{
red -= i;
}
else
break;
}
else
{
if (blue >= i)
{
blue -= i;
} else
{
break;
}
}
h++;
i++;
}
return h;
}
};