Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
meh solution in Clear category for Node Disconnected Users by Leonix
def disconnected_users(net, users, source, crushes):
if source in crushes:
connected = []
else:
crushes = set(crushes)
connected = net_connected({source,}, [pair for pair in net if not (crushes & set(pair))])
unconnected_nodes = { node for pair in net for node in pair if node not in connected }
return sum(users[node] for node in unconnected_nodes)
def net_connected(connected, net):
net_unprocessed = []
nothing_changed = True
for pair in net:
if connected & set(pair):
connected.update(pair)
nothing_changed = False
else:
net_unprocessed.append(pair)
if nothing_changed or not net_unprocessed:
return connected
return net_connected(connected, net_unprocessed)
May 16, 2019