--- 2016 Day 14 Solutions ---

import hashlib, collections

salt = 'abc'

salt = 'zpqevtbw'

try: with open('13.txt') as fp: start = len(fp.read().splitlines()) except: start = 0

print(start) with open('13.txt', 'a') as fp: for n in range(start, start+1000): seed = '{}{}'.format(salt, n).encode() digest = hashlib.md5(seed).hexdigest() # for _ in range(2016): digest = hashlib.md5(digest.encode()).hexdigest() fp.write(digest+'\n')

found = set() track = collections.defaultdict(list) with open('13.txt') as fp: for i, digest in enumerate(fp.read().splitlines()): try: f = next(cs[0] for cs in zip(digest, digest[1:], digest[2:], digest[3:], digest[4:]) if len(set(cs))==1) for j in track[f]: if 0<(i-j)<=1000: found.add(j) except: pass

    try:
        t = next(cs[0] for cs in zip(digest, digest[1:], digest[2:]) if len(set(cs))==1)
        track[t].append(i)
    except:
        pass

print(sorted(found)[63])

Amazing solution, I like it, super !

/r/adventofcode Thread Parent