Initial release

This commit is contained in:
Francois JUMELLE
2021-05-03 22:32:40 +02:00
commit 20526d93c8
928 changed files with 452368 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
input = open("Crifouinette.txt").read()
# input = """1: 2, 4, 6
# 2: 1, 3
# 3: 2, 4, 5
# 4: 1, 3, 5
# 5: 3, 4
# 6: 1, 7, 8
# 7: 6
# 8: 6"""
fouinettes = dict()
for i in input.splitlines():
f, f_contact = i.replace(" ", "").split(":")
fouinettes[int(f)] = [int(v) for v in list(f_contact.split(","))]
solution = dict()
for start in fouinettes:
print(start)
max_step = 0
f_alertes = [start, ] #La liste des fouinettes déjà alertés
new_f_alertes = [start, ] #La liste des fouinette nouvellement alertés
while f_alertes != list(fouinettes.keys()):
max_step += 1
new_f_alertes_tmp = list()
# print("previous:", new_f_alertes)
#On cherche les nouveaux fouinettes alertés à l'étape suivante
for f in new_f_alertes:
new_f_alertes_tmp = new_f_alertes_tmp + fouinettes[f]
#On supprive ceux déjà altertés auparavant et les doublons
new_f_alertes_tmp = sorted(list(set([item for item in new_f_alertes_tmp if item not in f_alertes])))
if len(new_f_alertes_tmp) == 0:
raise ValueError("new_f_alertes_tmp empty")
# print("new:", new_f_alertes_tmp)
f_alertes = sorted(f_alertes + new_f_alertes_tmp)
new_f_alertes = new_f_alertes_tmp
# print("all alerted:", f_alertes)
# print()
if max_step not in solution:
solution[max_step] = sorted(new_f_alertes + [start, ])
else:
solution[max_step] = sorted(list(set((solution[max_step] + new_f_alertes + [start, ]))))
print(max(solution.keys()), solution[max(solution.keys())])