Go again like last year for main solutions.
The Elves have good news and bad news.
The good news is that they've discovered project management! This has given them the tools they need to prevent their usual Christmas emergency. For example, they now know that the North Pole decorations need to be finished soon so that other critical tasks can start on time.
The bad news is that they've realized they have a different emergency: according to their resource planning, none of them have any time left to decorate the North Pole!
To save Christmas, the Elves need you to finish decorating the North Pole by December 12th.
Collect stars by solving puzzles. Two puzzles will be made available on each day; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck!
| Day | #1 | #1 Answer | #2 | #2 Answer |
|---|---|---|---|---|
| Day 1: Secret Entrance | 🌟 | 997 | 🌟 | 5978 |
| Day 2: Gift Shop | 🌟 | 9188031749 | 🌟 | 11323661261 |
| Day 3: Lobby | 🌟 | 16993 | 🌟 | 168617068915447 |
| Day 4: Printing Department | 🌟 | 1320 | 🌟 | 8354 |
| Day 5: Cafeteria | 🌟 | 885 | 🌟 | 348115621205535 |
| Day 6: Trash Compactor | 🌟 | 6209956042374 | 🌟 | 12608160008022 |
| Day 7: Laboratories | 🌟 | 1711 | 🌟 | 36706966158365 |
| Day 8: Playground | 🌟 | 69192 | 🌟 | 7264308110 |
| Day 9: Movie Theater | 🌟 | 4772103936 | 🌟 | 1529675217 |
| Day 10: Factory | 🌟 | 455 | 🌟 | 16978 |
| Day 11: Reactor | 🌟 | 431 | 🌟 | 358458157650450 |
| Day 12: Christmas Tree Farm | 🌟 | 422 |
Using Go's built-in benchmarking with the testing package. Computer is a 2021 MacBook Pro M1 Pro, 32 GB RAM.
| Day | #1 | #2 | Improvement* |
|---|---|---|---|
| 1 | 340532 | 338234 | 52,30% / 52,86% |
| 2 | 39771972 | 778769562 | -14,63% / 46,44% |
| 3 | 209025 | 276642 | 5,57% |
| 4 | 214451 | 5483916 | |
| 5 | 116258 | 68155 | 96,29% / - |
| 6 | 149919 | 986335 | 30,99% / - |
| 7 | 671799 | 508323 | |
| 8 | 66756016 | 64329155 | |
| 9 | 593637 | 375621306 | - / 90,43% |
| 10 | 256756802 | Used Z3 | |
| 11 | 106015 | 311170 | |
| 12 | 274895 | - |
All values are ns/op. * compared to first solution.
| Day | #1 | #2 | Improvement | Link |
|---|---|---|---|---|
| 1 | 713866 | 717585 | Baseline | Link |
| 2 | 34694476 | 1454106125 | Baseline | Link |
| 3 | 221365 | - | Baseline | Link |
| 5 | 3135281 | - | Baseline | Link |
| 6 | 217234 | - | Baseline | Link |
| 9 | - | 3925386083 | Baseline | Link |
Run a day
make run day=<number>
Run test for a day
make test day=<number>
Create a new day
make create-day day=<number>