浏览代码

🌊

master
Roderic Day 5 年前
父节点
当前提交
79442cb66a
共有 1 个文件被更改,包括 31 次插入0 次删除
  1. +31
    -0
      y2019/p06.py

+ 31
- 0
y2019/p06.py 查看文件

import sys
import collections


# build
text = sys.stdin.read()
directed = {}
undirected = collections.defaultdict(set)
for line in text.splitlines():
A, B = line.split(')')
directed[B] = A
undirected[B].add(A)
undirected[A].add(B)

# pop stack
i = 0
for k in directed:
while k in directed:
k = directed[k]
i += 1
print(i)

# bfs
hops = 0
seen = set()
edge = {'YOU'}
while 'SAN' not in edge:
hops += 1
seen |= edge
edge = {new for node in edge for new in undirected[node]} - seen
print(hops - 2)

正在加载...
取消
保存