#!/usr/bin/env python3 import sys import networkx as nx if __name__ == '__main__': pcs = [line.strip('\n').split('-') for line in open(sys.argv[1])] d = {} t = set([]) for con in pcs: if con[0] in d: d[con[0]].append(con[1]) else: d[con[0]] = [con[1]] if con[0].startswith('t'): t.add(con[0]) if con[1].startswith('t'): t.add(con[1]) G = nx.Graph(d) res1 = 0 for clique in nx.enumerate_all_cliques(G): if len(clique) == 3 and len(set(clique).intersection(t)) > 0: res1 += 1 if len(clique) == 4: break res2 = ','.join(sorted(sorted([c for c in nx.find_cliques(G)],key=len, reverse=True)[0])) # challenge 1 print(f"challenge 1:\n{res1}\n") # challenge 2 print(f"challenge 2:\n{res2}")