Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Square Conference Table by Buggerman
Desks = tuple[int, ...]
SquareTable = list[Desks, Desks, Desks, Desks]
from itertools import combinations
def AllComb(values, _sum):
for i in range(1, _sum + 1):
yield from {x for x in combinations(values, i) if sum(x) == _sum}
def Rec(desks, lenList):
for xl in AllComb(desks, lenList[0]):
if len(lenList) == 1: return [list(xl)]
d = desks.copy()
for x in xl: d.remove(x)
res = Rec(d, lenList[1:])
if res: return res + [list(xl)]
return None
def square_conference_table(desks: Desks, side_length: int) -> SquareTable:
edge_comb = [[side_length, side_length - 2]*2,
[side_length] + [side_length - 1]*2 + [side_length - 2],
[side_length - 1]*4 ]
for e in edge_comb:
res = Rec(list(desks), e)
if res: return res
return []
June 11, 2024
Comments: