03_rucksacks.py 537 B

123456789101112131415161718192021
  1. #!/usr/bin/env python3
  2. import sys
  3. def prio(item):
  4. return (ord(item) - ord('a') + 1) % 58
  5. def split(pack):
  6. return pack[:len(pack) // 2], pack[len(pack) // 2:]
  7. def group(packs):
  8. cur = []
  9. for pack in packs:
  10. cur.append(pack)
  11. if len(cur) == 3:
  12. yield cur
  13. cur = []
  14. packs = [line.rstrip() for line in sys.stdin]
  15. print(sum(prio(next(i for i in a if i in b)) for a, b in map(split, packs)))
  16. print(sum(prio(next(i for i in a if i in b and i in c))
  17. for a, b, c in group(packs)))