|
|
- # https://adventofcode.com/2020/day/13
- using AdventOfCode
- using Mods
-
- t_str, buses_str = readlines("2020/data/day_13.txt")
- time = parse(Int, t_str)
- buses = map(x->x=="x" ? nothing : parse(Int, x), split(buses_str, ','))
-
- function part_1()
- wait, bus = min(map(x->(x*ceil(time / x), x), filter(!isnothing, buses))...)
- (wait - time) * bus
- end
- @info part_1()
-
- function part_2()
- mods = map(k->Mod{buses[k]}(-(k-1)), filter(k->!isnothing(buses[k]), keys(buses)))
- CRT(mods...).val
- end
- @info part_2()
|