diff --git a/10/10.py b/10/10.py new file mode 100644 index 0000000..3d74634 --- /dev/null +++ b/10/10.py @@ -0,0 +1,47 @@ +#!/usr/bin/python3 + +import sys +from functools import lru_cache + +jolts = 0 +adapt = [0] + +for line in sys.stdin: + i = int(line.rstrip()) + adapt.append(i) +adapt = sorted(adapt) + +countjolts = {} +countjolts[3] = 1 +valid = {} + +for a in adapt: + diff = a - jolts + jolts = a + if diff not in countjolts: + countjolts[diff] = 1 + else: + countjolts[diff] = countjolts[diff] + 1 +print(1, countjolts[3] * countjolts[1]) + +# this is witchcraft +@lru_cache +def find_perms(adapt, n): + current = adapt[n] + pv = 0 + l = n + 4 + if l > len(adapt): + l = len(adapt) + + for i in range(n+1, l): + if adapt[i] > current + 3: + continue + + pv = pv + find_perms(adapt, i) + + if pv == 0: + return 1 + + return pv + +print(2, find_perms(tuple(adapt),0))