from tqdm import tqdm from argparse import ArgumentParser def main(input, iterations): input_list: list = input.split(" ") for _ in tqdm(range(iterations)): new_stones = [] for num in input_list: if num == '0': new_stones.extend(["1"]) elif len(num) % 2 == 0: half = len(num) // 2 left_half = str(int(num[:half])) right_half = str(int(num[half:])) new_stones.extend([left_half, right_half]) else: new_stones.extend([str(int(num)*2024)]) input_list = new_stones return len(input_list) if __name__ == "__main__": args = ArgumentParser( prog="Advend of Code Day 11", description="Solves the puzzle for day 11" ) args.add_argument("-p", "--part") args.add_argument("-f", "--file") args = args.parse_args() input_text = open(args.file, 'r').read() iterations = 25 if args.part == "1" else 75 if args.part == "2" else None answer = main(input_text, iterations) print(str(answer))