puzzle12.py (692B)
1 with open('files/puzzle12.txt') as f: 2 programs = f.readlines() 3 4 my_dict = {} 5 network = [] 6 7 for program in programs: 8 tokens = program.split(" ") 9 my_dict[tokens[0]] = [tokens[i][:len(tokens[i]) - 1] for i in range(2, len(tokens))] 10 11 def traverse(recipients): 12 for recipient in recipients: 13 if recipient not in network: 14 network.append(recipient) 15 traverse(my_dict[recipient]) 16 17 traverse(my_dict["0"]) 18 print len(network) 19 20 size_of_network = len(network) 21 network_count = 1 22 23 for program in my_dict.values(): 24 traverse(program) 25 if len(network) > size_of_network: 26 size_of_network = len(network) 27 network_count += 1 28 29 print network_count