|
12345678910111213141516171819202122232425 |
- import collections
- import itertools
- import sys
-
-
- def recurse(n, sources, cache={0: 1}):
- if n not in cache:
- cache[n] = sum(recurse(m, sources) for m in sources[n])
- return cache[n]
-
-
- text = sys.stdin.read()
-
- ns = [int(n) for n in text.splitlines()]
- ns += [0, max(ns) + 3]
- ns.sort()
-
- a, b = collections.Counter([b - a for a, b in zip(ns, ns[1:])]).values()
- print(a * b)
-
- sources = collections.defaultdict(list)
- for a, b in itertools.combinations(ns, 2):
- if b - a <= 3:
- sources[b].append(a)
- print(recurse(ns[-1], sources))
|