30 lines
586 B
Python
30 lines
586 B
Python
from lib import get_data
|
|
from lib import Grid2D
|
|
|
|
data = get_data(__file__)
|
|
|
|
g = Grid2D(data)
|
|
seen = set()
|
|
for i in range(10**9):
|
|
if g.hash() in seen:
|
|
print(i)
|
|
break
|
|
|
|
seen.add(g.hash())
|
|
blocked = set(g.find(">v"))
|
|
for p in g.find(">"):
|
|
np = (p[0], (p[1] + 1) % g.n_cols)
|
|
if np in blocked:
|
|
continue
|
|
g[p] = "."
|
|
g[np] = ">"
|
|
|
|
blocked = set(g.find(">v"))
|
|
for p in g.find("v"):
|
|
np = ((p[0] + 1) % g.n_rows , p[1])
|
|
if np in blocked:
|
|
continue
|
|
g[p] = "."
|
|
g[np] = "v"
|
|
|