Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # bestand lezen en in stukjes hakken:
- bestand = open('input.txt', 'r')
- alles = bestand.readlines()
- for x in range(len(alles)):
- alles[x] = alles[x].replace('\n', '')
- for x in range(len(alles)):
- alles[x] = alles[x].split('-')
- for x in range(len(alles)):
- alles[x].sort()
- # lijstje van de grotten maken, formaat is eerst de grot en dan waar je vanaf daar heen kunt:
- grotten = []
- for pad in range(len(alles)):
- for grot in range(2):
- if alles[pad][grot] not in grotten:
- grotten.append(alles[pad][grot])
- for x in range(len(grotten)):
- grotten[x] = [grotten[x], []]
- for pad in range(len(alles)):
- for y in range(len(grotten)):
- if alles[pad][0] == grotten[y][0]:
- if alles[pad][1] not in grotten[y][1]:
- grotten[y][1].append(alles[pad][1])
- if alles[pad][1] == grotten[y][0]:
- if alles[pad][0] not in grotten[y][1]:
- grotten[y][1].append(alles[pad][0])
- # routekaart uit destilleren:
- kaart = [[] for x in range(len(grotten))]
- for x in range(len(grotten)):
- for y in range(len(grotten[x][1])):
- for z in range(len(grotten)):
- if grotten[x][1][y] == grotten[z][0]:
- kaart[x].append(z)
- # kleine grotjes, begin en eind zoeken:
- grotjes = []
- for x in range(len(grotten)):
- if grotten[x][0].islower():
- grotjes.append(x)
- for x in range(len(grotten)):
- if grotten[x][0] == 'start':
- begin = x
- for x in range(len(grotten)):
- if grotten[x][0] == 'end':
- einde = x
- nogdoen = [[begin]]
- # daar gaan we dan:
- legaal = 0
- while len(nogdoen) > 0:
- route = nogdoen[0]
- waarnu = route[-1]
- grotjesgehad = [0 for x in range(len(kaart))]
- for x in range(len(route)):
- if route[x] in grotjes:
- grotjesgehad[route[x]] += 1
- for x in range(len(kaart[waarnu])):
- magdat = True
- dubbelgehad = False
- for y in range(len(grotjesgehad)):
- if grotjesgehad[y] > 1:
- dubbelgehad = True
- if kaart[waarnu][x] == begin:
- magdat = False
- if grotjesgehad[kaart[waarnu][x]] > 1:
- magdat = False
- if dubbelgehad == True and grotjesgehad[kaart[waarnu][x]] == 1:
- magdat = False
- if magdat:
- toevoegen = []
- for y in range(len(route)):
- toevoegen.append(route[y])
- toevoegen.append(kaart[waarnu][x])
- if toevoegen[-1] != einde:
- nogdoen.append(toevoegen)
- else:
- legaal += 1
- nogdoen.pop(0)
- print(legaal)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement