Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
using sympy solution in 3rd party category for Count Chains by lxf42
from typing import List, Tuple
from sympy import Circle
def count_chains(circles: List[Tuple[int, int, int]]) -> int:
circles = [Circle((x[0], x[1]), x[2]) for x in circles]
chains = []
cur_chain = [circles.pop(0)]
while len(circles):
for i in range(len(circles)):
for circle in cur_chain:
if len(circle.intersect(circles[i])) == 2:
cur_chain.append(circles.pop(i))
break
else:
continue
break
else:
chains.append(cur_chain)
if len(circles):
cur_chain = [circles.pop(0)]
chains.append(cur_chain)
return len(chains)
Feb. 28, 2022