ソースを参照

2020/18

master
Roderic Day 4年前
コミット
e44f117390
1個のファイルの変更25行の追加0行の削除
  1. +25
    -0
      y2020/p10.py

+ 25
- 0
y2020/p10.py ファイルの表示

@@ -0,0 +1,25 @@
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))

読み込み中…
キャンセル
保存