| 1234567891011121314151617181920 |
- #!/usr/bin/env python3
- import sys
- from functools import lru_cache
- def mul_diffs(adapters):
- seq = [0] + sorted(adapters)
- diffs = [seq[i + 1] - seq[i] for i in range(len(seq) - 1)] + [3]
- return diffs.count(1) * diffs.count(3)
- def arrangements(adapters):
- @lru_cache(maxsize=4)
- def ways(jo):
- return jo in exists and \
- (jo <= 3) + ways(jo - 1) + ways(jo - 2) + ways(jo - 3)
- exists = set(adapters)
- return ways(max(adapters))
- adapters = list(map(int, sys.stdin))
- print(mul_diffs(adapters))
- print(arrangements(adapters))
|