def add_node(perm): n = len(perm) if n < 4: return None partition = perm_to_partition(perm) star = semistar_test.classify_permutation(perm) if not partition in graph: # adjacent permutations d = {} for i in range(len(perm)): tmp = list(perm) x = tmp.pop(i) to_check = permutation_to_standard_0(tmp) child = add_node(to_check) if child is not None: if child not in d: d[child] = [] d[child].append(x) graph[partition] = (star, d) return partition
#!/usr/bin/env python3 from unicursalpolygon.models.unicursalpolygon import UnicursalPolygon from unicursalpolygon.utils import permutation_to_standard_0 if __name__ == "__main__": while 1: try: lis = [int(i) for i in input().split(',')] res = {True:[],False:[],None:[]} for i in range(len(lis)): tmp = list(lis) x = tmp.pop(i) to_check = permutation_to_standard_0(tmp) tmp = UnicursalPolygon(to_check) try: res[tmp.is_star()].append(x) except: res[None].append(x) print(lis,res[False],res[True]) except EOFError: break