def load(p: Problem): data = p.raw_data().split('\n\n') rules = {} for line in data[0].split('\n'): match = RULE_PATTERN.match(line) rules[int(match.group(1))] = match.group(4) if match.group(4) else [[ int(r) for r in opt.split(' ') ] for opt in match.groups()[1:] if opt] return {"rules": rules, "messages": data[1].split('\n')}
def load(p: Problem): data = p.raw_data().split('\n\n') return [[int(d) for d in data[0].split('\n')[1:]], [int(d) for d in data[1].split('\n')[1:]]]
def load(p: Problem): return p.raw_data()
def load(p: Problem): data = lmap(int, p.raw_data()) return dict(zip(data, np.roll(data, -1)))
def load(p: Problem): return [ Tile(int(tile.split('\n')[0].split(' ')[1][:-1]), np.array([np.array(list(l)) for l in tile.split('\n')[1:]])) for tile in p.raw_data().split('\n\n') ]