Untitled
unknown
plain_text
4 months ago
1.3 kB
2
Indexable
from collections import defaultdict def read_input(filename): with open(filename, 'r') as f: input = f.readlines() rules = [] subsequences = [] for i in range(len(input)): if "|" in input[i]: rules.append(tuple(map(int, input[i].strip().split("|")))) elif "," in input[i]: subsequences.append(list(map(int, input[i].strip().split(",")))) return rules, subsequences def create_adjacent_map(rules): adj_list = defaultdict(list) for left, right in rules: adj_list[left].append(right) return adj_list if __name__ == '__main__': rules, subsequences = read_input("5_input.txt") adj_list = create_adjacent_map(rules) valid_seqs = [] for subsequence in subsequences: valid = True for i in range(len(subsequence) - 1, 0, -1): item = subsequence[i] for successor in adj_list[item]: if successor in subsequence[:i]: valid = False print(f"Invalid subsequence: {subsequence}") break if valid: print(f"Valid subsequence: {subsequence}") valid_seqs.append(subsequence) print(sum(seq[len(seq) // 2] for seq in valid_seqs))
Editor is loading...
Leave a Comment