Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Python by Konstantin Nikitin ( 15 years ago )
#!/usr/bin/env python
def best_childs_solution(child):
return min(child)
def calculate_connection_loss(child):
return min(child[0:2]) - best_childs_solution(child)
def your_solution(children):
result = [10000] * 3
result[0] = len(children)
for child in children:
result[0] += best_childs_solution(child)
result[1] = min(result[1],
result[0] + calculate_connection_loss(child))
result[2] = min(result[2],
result[1] + calculate_connection_loss(child))
result[1] -= 1
result[2] -= 2
return result
def my_solution(children):
result = [10000] * 3
result[0] = len(children)
for child in children:
result[0] += best_childs_solution(child)
first_connection = 0
min_loss = calculate_connection_loss(children[first_connection])
for index, child in enumerate(children[1:]):
if calculate_connection_loss(child) < min_loss:
min_loss = calculate_connection_loss(child)
first_connection = index
result[1] = result[0] - 1 + min_loss
second_connection = 0 if first_connection == 1 else 1
min_loss = calculate_connection_loss(children[second_connection])
for index, child in enumerate(children):
if index == first_connection:
continue
if calculate_connection_loss(child) < min_loss:
min_loss = calculate_connection_loss(child)
result[2] = result[1] - 1 + min_loss
return result
def main():
children = [[0, 0, 0], [3, 3, 3]]
print "My solution:", my_solution(children)
print "Your solution:", your_solution(children)
if __name__ == "__main__":
main()
Revise this Paste
Children: 42809