Fairly straightforward, but mostly because I've already learned to use recursion, memoization and 64bit ints in AoC.