Welcome, guest! Login / Register - Why register?
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
Your Name: Code Language: