Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Wild Dogs by MBM_1607
from itertools import combinations
from math import hypot
def wild_dogs(coords):
same_line = lambda p1, p2, p3: abs((p1[0] - p2[0]) * (p1[1] - p3[1])) == abs((p1[0] - p3[0]) * (p1[1] - p2[1]))
def distance(group):
a = group[1][1] - group[0][1]
b = group[0][0] - group[1][0]
c = b * group[0][1] + a * group[0][0]
return abs(c) / hypot(a, b)
groups = []
for p1, p2 in combinations(coords, 2):
groups.append([p for p in coords if same_line(p1, p2, p)])
return round(min((-len(g), distance(g)) for g in groups)[1], 2)
Sept. 11, 2018