You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
757 B
33 lines
757 B
3 years ago
|
import sys
|
||
|
|
||
|
inp = {}
|
||
|
solutions = []
|
||
|
|
||
|
def juzgfvzgv(poi, path, twice):
|
||
|
nex = inp[poi]
|
||
|
#print(nex)
|
||
|
for i in nex:
|
||
|
if i == 'end':
|
||
|
solutions.append(path + [i])
|
||
|
continue
|
||
|
elif i.islower() and i in path:
|
||
|
if twice and i != 'start':
|
||
|
juzgfvzgv(i, path + [i], False)
|
||
|
else:
|
||
|
continue
|
||
|
else:
|
||
|
juzgfvzgv(i, path + [i], twice)
|
||
|
|
||
|
with open(sys.argv[1], 'r') as f:
|
||
|
for i in f.readlines():
|
||
|
i = i.strip()
|
||
|
temp1, temp2 = i.split('-', 1)
|
||
|
inp.setdefault(temp1, list()).append(temp2)
|
||
|
inp.setdefault(temp2, list()).append(temp1)
|
||
|
|
||
|
juzgfvzgv('start', ['start'], True)
|
||
|
for i in solutions:
|
||
|
print(i)
|
||
|
print(len(solutions))
|
||
|
|