from itertools import product from common import solve, int2bin def write_memory(addr, value, mask, memory): addr = int2bin(addr) for i, c in enumerate(mask): if c in 'X1': addr[i] = c c = addr.count('X') addr = ''.join(addr).replace("X", "{}") for x in product("01", repeat=c): memory[addr.format(*x)] = value print(solve(write_memory))
from math import prod from common import solve def solver(string): return (str( prod(sum(map(int, x.split(' + '))) for x in string.split(' * ')))) print(solve(solver))
from common import solve print(solve(2))
from common import solve def at_position(pos1, pos2, char, password): return (password[pos1 - 1], password[pos2 - 1]).count(char) == 1 print(solve(validator=at_position))
def main(): print(solve(store_visited=True))
from common import solve print(solve(30000000))
from common import solve def standard(deck1, deck2): while len(deck1) and len(deck2): card1 = deck1.pop(0) card2 = deck2.pop(0) if card1 > card2: deck1.append(card1) deck1.append(card2) elif card2 > card1: deck2.append(card2) deck2.append(card1) print(solve(game=standard))
#!/usr/bin/env python import sys from common import solve if (len(sys.argv) == 1): print("Usage: %s PUZZLE" % sys.argv[0]) exit(1) puzzle = sys.argv[1] print(solve(puzzle, len(puzzle) / 2))
from common import solve def recursive(deck1, deck2): previous = set() while len(deck1) and len(deck2): if (current := (tuple(deck1), tuple(deck2))) in previous: return 1 else: previous.add(current) card1 = deck1.pop(0) card2 = deck2.pop(0) if len(deck1) >= card1 and len(deck2) >= card2: winner = recursive(deck1[:card1], deck2[:card2]) else: winner = 1 if card1 > card2 else 2 if winner == 1: deck1.append(card1) deck1.append(card2) else: deck2.append(card2) deck2.append(card1) return 1 if len(deck1) else 2 print(solve(game=recursive))
from common import solve def in_range(lower, upper, char, password): return lower <= password.count(char) <= upper print(solve(validator=in_range))
from common import solve print(solve(slopes=((3, 1), )))
from common import solve print(solve(2020))
from common import solve print(solve(4))
from common import solve print(solve(version=1))
from common import solve print(solve())
def main(): print(solve())
from common import solve print len(str(solve('1113222113', 50)))
from common import solve solve(min)
from common import solve print(solve(3))
from common import solve solve(max)
from common import read_input, solve prefs = read_input() prefs['me'] # For the side-effect on defaultdict print solve(prefs)
from common import solve print(solve(part_two=True))
from common import solve def up(pos): return pos if pos in (1, 2, 3) else pos - 3 def down(pos): return pos if pos in (7, 8, 9) else pos + 3 def left(pos): return pos if pos in (1, 4, 7) else pos - 1 def right(pos): return pos if pos in (3, 6, 9) else pos + 1 print(solve(up, down, left, right))
from common import solve print(solve(least_common=True))
from common import solve print(solve(slopes=((1, 1), (3, 1), (5, 1), (7, 1), (1, 2))))
#!/usr/bin/env python import sys from common import solve if (len(sys.argv) == 1): print("Usage: %s PUZZLE" % sys.argv[0]) exit(1) print(solve(sys.argv[1], 1))
def trace(u0, forces, torques, params, conditions): return solve(eqns, u0, forces, torques, params, conditions)
from common import read_input, solve print solve(read_input())
#!/usr/bin/env python import fileinput from common import solve, difference puzzle = [map(int, line.split("\t")) for line in fileinput.input()] print(solve(puzzle, difference))