06.1, 06.2 python
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
|
||||
|
||||
|
||||
data = open("input.txt").read().strip().split("\n")
|
||||
data = [list(x) for x in data]
|
||||
v = set()
|
||||
si, sj = [(i, j) for i in range(len(data)) for j in range(len(data[0])) if data[i][j]=="^"][0]
|
||||
i, j = si, sj
|
||||
d = [(-1, 0), (0, 1), (1, 0), (0, -1)]
|
||||
k = 0
|
||||
c = -1
|
||||
di, dj = d[0]
|
||||
while True:
|
||||
while 0<=i<len(data) and 0<=j<len(data[0]) and data[i][j]!='#':
|
||||
v.add((i, j))
|
||||
i, j = i+di, j+dj
|
||||
if not (0<=i<len(data) and 0<=j<len(data[0])):
|
||||
break
|
||||
i -= di
|
||||
j -= dj
|
||||
k = (k+1)%4
|
||||
di, dj = d[k]
|
||||
print(len(v))
|
||||
|
||||
s = 0
|
||||
v.remove((si, sj))
|
||||
for xi, xj in v:
|
||||
v2 = set()
|
||||
data[xi][xj] = '#'
|
||||
di, dj = d[0]
|
||||
k = 0
|
||||
i, j = si, sj
|
||||
while True:
|
||||
while 0<=i<len(data) and 0<=j<len(data[0]) and data[i][j]!='#' and (i,j,k) not in v2:
|
||||
v2.add((i, j, k))
|
||||
i, j = i+di, j+dj
|
||||
if (i,j,k) in v2:
|
||||
s += 1
|
||||
break
|
||||
if not (0<=i<len(data) and 0<=j<len(data[0])):
|
||||
break
|
||||
i -= di
|
||||
j -= dj
|
||||
k = (k+1)%4
|
||||
di, dj = d[k]
|
||||
data[xi][xj] = '.'
|
||||
|
||||
print(s)
|
||||
|
||||
Reference in New Issue
Block a user