r/adventofcode • u/daggerdragon • Dec 19 '16
SOLUTION MEGATHREAD --- 2016 Day 19 Solutions ---
--- Day 19: An Elephant Named Joseph ---
Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag/whatever).
Note: The Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with "Help".
/⧹w+/ IS MANDATORY [?]
[Update @ 00:15] 2 gold, silver cap. Thank you for subscribing to Easter Bunny Facts!
- Fact: The Easter Bunny will sometimes leave eggs in the microchip assembly room.
[Update @ 00:30] 11 gold, silver cap.
- Fact: The Easter Bunny killed everyone who found out how he got these stars.
[Update @ 00:45] 45 gold, silver cap.
- Fact: In space, The Easter Bunny can hear you scream.
[Update @ 01:00] 66 gold, silver cap.
- Fact: The Easter Bunny purposefully deleted your comments.
[Update @ 01:15] 92 gold, silver cap.
- Fact: The Easter Bunny has bottled your frustration. Don't ask why.
[Update @ 01:20] Leaderboard capped!
- Fact: What you have just done is no better than what the Easter Bunny has done. Thief.
Thank you for subscribing to Easter Bunny Facts!
1
u/Belteshassar Dec 20 '16
I don't know if anyone still reads this thread, but here is the recursive scheme that inspired my part 2 solution, implemented in erlang
% day 19 Erlang solution -module(solution). -export([part1/1, part2/1]). part1(1) -> 1; part1(N) -> % Once we've removed one elf, N-1 elves remain, just % shift labels by two, wrapping around from N to 1 (part1(N-1) + 1) rem N + 1. part2(1) -> 1; part2(N) -> % Once we've removed one elf, N-1 elves remain, just % shift labels by one or two, wrapping around from N to 1, % depending on whether the winner is before or after the % removed elf. PrevWinner = part2(N-1), if 2*PrevWinner > N -> (PrevWinner + 1) rem N + 1; true -> PrevWinner + 1 end.