코드 n,l,w,h = map(int, input().split()) start, end = 0, 1000000000 # 선물 상자의 최소 길이가 1이라는 말은 없다. 0이 최소값! for _ in range(1000): # 여러 번 반복하면 오차범위가 줄어든다 mid = (start + end) / 2 if ((l//mid)*(w//mid)*(h//mid) >= n): # 상자 개수 구하기 start = mid else: end = mid print(f'{start:.10f}') # start, end의 오차범위가 매우 작으므로 어떤 수를 써주어도 상관없다. 오차범위를 줄이는 것이 포인트였던 문제. 낚시 당한 부분이 많아 기억에 오래 남을 것 같다.