# with open("./2021/14.test") as input_file: with open("./2021/14.input") as input_file: input_data = input_file.read() start_polymer = input_data.split("\n\n")[0] polymer_rules = input_data.split("\n\n")[1].split("\n") rules_dict = {} for one_rule in polymer_rules: rules_dict[one_rule.split(" -> ")[0]] = one_rule.split(" -> ")[1] print(rules_dict) counter = 1 while counter <= 10: output_data = "" for i in range(1, len(start_polymer)): substring = start_polymer[i-1:i+1] output_data += substring[0] + rules_dict[substring] output_data += start_polymer[-1] start_polymer = output_data counter += 1 output_dict = {} for i in range(len(start_polymer)): if start_polymer[i] not in output_dict.keys(): output_dict[start_polymer[i]] = 0 output_dict[start_polymer[i]] += 1 print(output_dict) print(max(output_dict.values()) - min(output_dict.values())) while counter <= 40: output_data = "" for i in range(1, len(start_polymer)): substring = start_polymer[i-1:i+1] output_data += substring[0] + rules_dict[substring] output_data += start_polymer[-1] start_polymer = output_data print(counter, end='\r') counter += 1 output_dict = {} for i in range(len(start_polymer)): if start_polymer[i] not in output_dict.keys(): output_dict[start_polymer[i]] = 0 output_dict[start_polymer[i]] += 1 print(output_dict) print(max(output_dict.values()) - min(output_dict.values()))