瀏覽代碼

jackson

master
Roderic Day 3 年之前
父節點
當前提交
0070ffd0c3
共有 1 個文件被更改,包括 24 次插入0 次删除
  1. +24
    -0
      y2021/p25.py

+ 24
- 0
y2021/p25.py 查看文件

@@ -0,0 +1,24 @@
text = open(0).read()
state = {}
for y, row in enumerate(text.splitlines()):
for x, ch in enumerate(row):
state[x, y] = ch
X, Y = x + 1, y + 1

seen = set()
for turn in range(1000):
for ch, dx, dy in [('>', 1, 0), ('v', 0, 1)]:
copy = state.copy()
for old in copy:
if copy[old] == ch:
x, y = old
new = (x + dx) % X, (y + dy) % Y
if copy[new] == '.':
state[old] = '.'
state[new] = ch

hashable = frozenset(state.items())
if hashable in seen:
print(turn)
break
seen.add(hashable)

Loading…
取消
儲存