|
| 1 | +#!/usr/bin/env python |
| 2 | +# fmt: off |
| 3 | +def solve(lines, ticker): |
| 4 | + return next( |
| 5 | + sue |
| 6 | + for sue, line in enumerate(lines, start=1) |
| 7 | + if all(ticker[key](value) for key, value in line.items()) |
| 8 | + ) |
| 9 | + |
| 10 | + |
| 11 | +ticker = { |
| 12 | + "children": lambda a: a == 3, |
| 13 | + "cats": lambda a: a == 7, |
| 14 | + "samoyeds": lambda a: a == 2, |
| 15 | + "pomeranians": lambda a: a == 3, |
| 16 | + "akitas": lambda a: a == 0, |
| 17 | + "vizslas": lambda a: a == 0, |
| 18 | + "goldfish": lambda a: a == 5, |
| 19 | + "trees": lambda a: a == 3, |
| 20 | + "cars": lambda a: a == 2, |
| 21 | + "perfumes": lambda a: a == 1, |
| 22 | +} |
| 23 | + |
| 24 | +lines = [ |
| 25 | + { |
| 26 | + l[i]: int(l[i + 1]) |
| 27 | + for l in [line.replace(":", "").replace(",", "").split()] |
| 28 | + for i in range(2, len(l), 2) |
| 29 | + } |
| 30 | + for line in open(0).read().splitlines() |
| 31 | +] |
| 32 | + |
| 33 | +print(solve(lines, ticker)) |
| 34 | + |
| 35 | +ticker["cats"] = lambda a: a > 7 |
| 36 | +ticker["trees"] = lambda a: a > 3 |
| 37 | +ticker["pomeranians"] = lambda a: a < 3 |
| 38 | +ticker["goldfish"] = lambda a: a < 5 |
| 39 | + |
| 40 | +print(solve(lines, ticker)) |
0 commit comments