My solutions to 2018's advent of code
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Dieses Repo ist archiviert. Du kannst Dateien sehen und es klonen, kannst aber nicht pushen oder Issues/Pull-Requests öffnen.

123456789101112131415161718192021222324252627282930
  1. import algorithm, math, sequtils, strutils
  2. func readNode(input: var seq[string]): tuple[value: int, metasum: int] =
  3. let
  4. child_count = input.pop.parseInt
  5. meta_count = input.pop.parseInt
  6. var
  7. value = 0
  8. metasum = 0
  9. child_values: seq[int]
  10. for i in 0 .. child_count - 1:
  11. var res = readNode(input)
  12. child_values.add(res.value)
  13. metasum += res.metasum
  14. for m in 0 .. meta_count - 1:
  15. var v = input.pop.parseInt
  16. if v > 0 and v <= child_count:
  17. value += child_values[v - 1]
  18. metasum += v
  19. if child_count == 0:
  20. value = metasum
  21. (value, metasum)
  22. var input = readFile("data/08.txt").strip.split(" ").reversed
  23. let root = input.readNode
  24. echo root.metasum
  25. echo root.value