#! /usr/bin/env python3 def part1(): print("Part1:") seen = set() with open("./aoc-d1-input.txt", "r") as f: for line in f: v = int(line) remain = 2020 - v if remain in seen: print(f"{v} * {remain} = {v*remain}") break seen.add(v) def part2(): print("Part2:") singles = set() doubles = {} with open("./aoc-d1-input.txt", "r") as f: for line in f: v = int(line) remain = 2020 - v if remain in doubles: n2, n3 = doubles[remain] print(f"{v} * {n2} * {n3} = {v*n2*n3}") break for n1 in singles: doubles[v+n1] = (v, n1) singles.add(v) if __name__ == "__main__": part1() part2()