This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
""" | |
Can fully paste into FreeCAD Python console. | |
FreeCAD script to create a mirrored solid rectangular box with stepped protrusions: | |
- Main box: 45mm x 15mm x 18.5mm (solid, created by mirroring 22.5mm half) | |
- Protrusions: 40mm wide x 7mm tall on each side (125mm total width) | |
- First 28mm: 15mm deep (full depth) | |
- Last 12mm: 7mm deep (centered) | |
- Main cylinders: 12mm outer diameter, 8mm inner, 2mm wall thickness |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import itertools as it | |
import re | |
cubes = sorted(([*map(int, re.findall(r'\d+', l))] for l in open(0)), | |
key=lambda p: p[2]) | |
def points(c, dz=0): | |
x1, y1, z1, x2, y2, z2 = c | |
return it.product(range(x1, x2+1), range(y1, y2+1), range(z1-dz, z2+1-dz)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from collections import * | |
from math import * | |
O, I = defaultdict(list), defaultdict(list) | |
FLIP, CONJ = set(), set() | |
for l in open(0): | |
a, bs = l.strip().split(' -> ') | |
a = a.strip() | |
if a[0]=='%': | |
a = a[1:] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
wf, pt = open(0).read().split('\n\n') | |
wfd = {} | |
for l in wf.split(): | |
w, cs = l.split('{') | |
cd = list() | |
conds = cs[:-1].split(',') | |
for i, c in enumerate(conds): |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
x, y, A, L, P2 = 0, 0, 0, 0, True | |
for d, s, c in map(str.split, open(0)): | |
s = int(c[2:-2], 16) if P2 else int(s) | |
if P2: d = "RDLU"[int(c[-2])] | |
nx, ny = x, y | |
if d=='R': | |
ny += s | |
elif d=='L': | |
ny -= s | |
elif d=='U': |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import itertools as it | |
L = [l.strip() for l in open(0)] | |
N, M = len(L), len(L[0]) | |
starts: list[tuple[int, int]] = list( | |
it.chain(*zip(*(((i, -1), (i, M)) for i in range(N))), | |
*zip(*(((-1, j), (N, j)) for j in range(M))))) | |
ms = [(1, 0), (0, 1), (-1, 0), (0, -1)] | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from heapq import * | |
L = [[*map(int, l.strip())] for l in open(0)] | |
N, M = len(L), len(L[0]) | |
MS = [(1, 0), (-1, 0), (0, 1), (0, -1)] | |
x, y = 0, 0 | |
E = (N-1, M-1) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def chsh(s): | |
hsh = 0 | |
for c in s: | |
hsh += ord(c) | |
hsh *= 17 | |
hsh %= 256 | |
return hsh | |
hshsum = 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def tilt(ls): | |
for i in range(len(ls)): | |
for j in range(len(ls[0])): | |
if ls[i][j]!='O': continue | |
new_loc = 0 | |
for k in range(i-1, -1, -1): | |
if ls[k][j]=='.': continue | |
new_loc = k+1 | |
break | |
ls[i][j] = '.' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ans = 0 | |
for l in open(0): | |
P, G = l.split() | |
G = tuple(map(int, G.split(','))) | |
P, G = '?'.join([P]*5), G*5 # part 2 | |
P = P+'.' | |
N, M = len(P), len(G) | |
cdot = [P[i:].count('.') for i in range(N)] | |
dp = [[0]*(M+1) for _ in range(N+1)] |
NewerOlder