forked from JaredLGillespie/CodinGame
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hooch-clash.py
48 lines (31 loc) · 1.21 KB
/
hooch-clash.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# https://www.codingame.com/training/easy/hooch-clash
import math
ERROR = 0.001
def volume(diameter):
return (4 / 3) * math.pi * (diameter / 2)**3
def volume_equal(v1, v2):
return v1 - ERROR <= v2 <= v1 + ERROR
def solution():
orb_size_min, orb_size_max = map(int, input().split())
glowing_size_1, glowing_size_2 = map(int, input().split())
target_volume = volume(glowing_size_1) + volume(glowing_size_2)
sparkling_size_1 = glowing_size_1
sparkling_size_2 = glowing_size_2
sparkling_difference = glowing_size_2 - glowing_size_1
for o1 in range(orb_size_min, orb_size_max + 1):
v1 = volume(o1)
for o2 in range(o1, orb_size_max + 1):
v2 = volume(o2)
if volume_equal(v1 + v2, target_volume):
if sparkling_size_1 == glowing_size_1 or o2 - o1 > sparkling_difference:
sparkling_size_1 = o1
sparkling_size_2 = o2
sparkling_difference = o2 - o1
break
if v1 + v2 > target_volume:
break
if sparkling_size_1 == glowing_size_1:
print('VALID')
else:
print('{} {}'.format(sparkling_size_1, sparkling_size_2))
solution()