Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Node Disconnected Users solution in Clear category for Node Disconnected Users by IRONKAGE
def disconnected_users(net, users, source, crushes):
if source in crushes:
return sum(users.values())
temp = [source]
goodnode = []
while temp:
node = temp.pop(0)
goodnode.append(node)
for left, right in net:
if left == node and right not in crushes and right not in goodnode:
temp.append(right)
elif right == node and left not in crushes and left not in goodnode:
temp.append(left)
return sum(users.values()) - sum(users[node] for node in goodnode)
if __name__ == '__main__':
assert disconnected_users([
['A', 'B'],
['B', 'C'],
['C', 'D']
], {
'A': 10,
'B': 20,
'C': 30,
'D': 40
},
'A', ['C']) == 70, "First"
assert disconnected_users([
['A', 'B'],
['B', 'D'],
['A', 'C'],
['C', 'D']
], {
'A': 10,
'B': 0,
'C': 0,
'D': 40
},
'A', ['B']) == 0, "Second"
assert disconnected_users([
['A', 'B'],
['A', 'C'],
['A', 'D'],
['A', 'E'],
['A', 'F']
], {
'A': 10,
'B': 10,
'C': 10,
'D': 10,
'E': 10,
'F': 10
},
'C', ['A']) == 50, "Third"
print('Done. Try to check now. There are a lot of other tests')
Oct. 11, 2019
Comments: