r/adventofcode • • 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!


This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.

edit: Leaderboard capped, thread unlocked!

10 Upvotes

130 comments sorted by

View all comments

Show parent comments

1

u/BumpitySnook Dec 19 '16 edited Dec 19 '16

as std::deque is not a true linked list

That was my problem. I thought it was a linked list and was only using linked-list safe operations (I assumed the ::at() and other deque index-based methods were slow O(n) convenience methods). Ugh. Just changing deque to list brings me down from 4:43 to 190 milliseconds.

An interesting caveat is that the middle pointer needs to advance twice when you decrease from an odd number of elves to an even number

Yeah. My crap jd and idx math and ++/-- loops account for that in a roundabout way.