Advertisement
rolfvanoven

troglodiet dag 14

Dec 14th, 2021
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.65 KB | None | 0 0
  1. # bestanden lezen en in stukjes hakken:
  2. bestand = open('input.txt', 'r')
  3. alles = bestand.readlines()
  4. for x in range(len(alles)):
  5.   alles[x] = alles[x].replace('\n', '')
  6.  
  7. molecuul = list(alles[0])
  8. alles.pop(0)
  9. alles.pop(0)
  10. for x in range(len(alles)):
  11.   alles[x] = alles[x].split(' -> ')
  12.  
  13. # vertaalsleutel maken:
  14. sleutel = [ [] for x in range(len(alles))]
  15. for x in range(len(alles)):
  16.   nieuw1 = alles[x][0][0] + alles[x][1]
  17.   nieuw2 = alles[x][1] + alles[x][0][1]
  18.   for y in range(len(alles)):
  19.     if alles[y][0] == nieuw1:
  20.       sleutel[x].append(y)
  21.     if alles[y][0] == nieuw2:
  22.       sleutel[x].append(y)
  23.  
  24. # molecuul er in:
  25. paren = [0 for x in range(len(alles))]
  26. for x in range(len(molecuul)-1):
  27.   for y in range(len(alles)):
  28.     if molecuul[x] + molecuul[x+1] == alles[y][0]:
  29.       paren[y] += 1
  30.  
  31. # en nu stappen maar:
  32. for stap in range(40):
  33.   nieuw = [0 for x in range(len(paren))]
  34.   for x in range(len(paren)):
  35.     nieuw[sleutel[x][0]] += paren[x]
  36.     nieuw[sleutel[x][1]] += paren[x]
  37.   paren = nieuw
  38.  
  39. # terug vertalen:
  40. letters = []
  41. for x in range(len(alles)):
  42.   if alles[x][0][0] not in letters:
  43.     letters.append(alles[x][0][0])
  44. for x in range(len(letters)):
  45.   letters[x] = [letters[x], 0]
  46. for x in range(len(letters)):
  47.   for y in range(len(alles)):
  48.     if letters[x][0] == alles[y][0][0]:
  49.       letters[x][1] += paren[y]
  50.   if letters[x][0] == molecuul[-1]:
  51.     letters[x][1] += 1
  52.  
  53. # tellen:
  54. meest = 0
  55. minst = 1000000000000000000000000000
  56. for x in range(len(letters)):
  57.   if letters[x][1] < minst:
  58.     minst = letters[x][1]
  59.   if letters[x][1] > meest:
  60.     meest = letters[x][1]
  61.  
  62. antwoord = meest - minst
  63. print(antwoord)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement