I hereby claim:
- I am sciyoshi on github.
- I am sciyoshi (https://keybase.io/sciyoshi) on keybase.
- I have a public key whose fingerprint is 672B C1C9 EBCA 2EF5 C4D5 F0EC 012E AF18 BD36 72DD
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| tickets = [] | |
| rules = {} | |
| valid_range = set() | |
| total = 0 | |
| for l in LINES: | |
| if l == "your ticket:" or l == "nearby tickets:": | |
| continue | |
| if ":" in l: | |
| n, rule = l.split(": ") |
| import numpy as np | |
| from scipy.ndimage import convolve | |
| LINES = open("inputs/day17").read().splitlines() | |
| dims = 3 # 4 for part 2 | |
| steps = 6 | |
| front = 2 * steps + 1 | |
| filt = np.full((3,) * dims, 1) | |
| filt[(1,) * dims] = 100 |
| class a(int): | |
| def __mul__(self, b): | |
| return a(int(self) + b) | |
| def __add__(self, b): | |
| return a(int(self) + b) | |
| def __sub__(self, b): | |
| return a(int(self) * b) | |
| def ev(expr, pt2=False): | |
| expr = re.sub(r"(\d+)", r"a(\1)", expr) |
| class ParseError(Exception): | |
| pass | |
| def parse_rule(alts): | |
| def parse(inp): | |
| for rule in alts: | |
| s = inp | |
| for el in rule: | |
| try: | |
| s = rules[el](s) |
| import functools | |
| import operator | |
| import itertools | |
| import networkx | |
| import numpy as np | |
| tiles = {} | |
| for tiledata in open("inputs/day20").read().strip().split("\n\n"): | |
| a, *tilelines = tiledata.splitlines() |
| import collections | |
| all_ingredients = collections.Counter() | |
| possible_ingredients = collections.defaultdict(set) | |
| for line in open("inputs/day21").read().splitlines(): | |
| ingredients, allergens = line.rstrip(")").split(" (contains ") | |
| ingredients = ingredients.split() | |
| allergens = allergens.split(", ") | |
| all_ingredients.update(ingredients) |
| import { promises } from "fs"; | |
| import crypto from "crypto"; | |
| import path from "path"; | |
| import { print, parse } from "graphql"; | |
| const plugin = { | |
| name: "relay", | |
| setup: build => { | |
| build.onLoad({ filter: /\.tsx$/, namespace: "" }, async args => { | |
| let contents = await promises.readFile(args.path, "utf8"); |
| from utils import Pt, Grd | |
| import math | |
| grd = Grd() | |
| for i, l in enumerate(LINES): | |
| for j, c in enumerate(l): | |
| grd[Pt(i, j)] = int(c) | |
| def expand(pt): |
| def convert(l, d=0): | |
| for i, e in enumerate(l): | |
| if isinstance(e, list): | |
| yield from convert(e, d + 1) | |
| else: | |
| yield (e, d) | |
| def reduce(l): | |
| c = list(l) |