Commit Graph
100 Commits
Author SHA1 Message Date
mgrettondann 931ad402fa Tidy 2021 25 solution 2022-11-27 17:22:29 +00:00
mgrettondann 29079b59bc Add Puzzle 2021-25-01 2022-11-26 21:34:03 +00:00
mgrettondann 4b275a855e Add Puzzle 2021-24 2022-11-26 21:10:00 +00:00
mgrettondann aae3bc7556 Merge remote-tracking branch 'origin/main' 2022-01-12 14:29:03 +00:00
mgrettondann 539666d508 Add 2017 puzzle 1 2022-01-12 14:28:19 +00:00
mgrettondann 0c2ac4d5f0 Add 2020 puzzle 1 2022-01-12 14:28:00 +00:00
mgrettondann 1fab8c9161 Completed puzzles for 2021 day 23 2022-01-12 14:26:21 +00:00
mgrettondann 3ba00ad3eb Separate out Dijkstra implementation
This separates the Dijkstra implementation into its own generic function.

Whilst doing this we can simplify the code and also save yet more memory!

Still don't get correct results for part 2.
2022-01-12 11:31:09 +00:00
mgrettondann a1a7d11583 Separate out Dijkstra implementation
This separates the Dijkstra implementation into its own generic function.

Whilst doing this we can simplify the code and also save yet more memory!

Still don't get correct results for part 2.
2022-01-12 09:30:21 +00:00
mgrettondann 29005ed7ba Improved version of 2021 puzzle 23-02
Building on changes to part 1 see if this performs better and produces correct results.
2021-12-25 08:58:21 +00:00
mgrettondann a5fc32ed07 Imrpove Puzzle 23-01 by modelling top row correctly.
Previously we modelled the top row as a connected series of nodes and allowed them to connect to each other directly.  This ignored the rule that you have to move directly to the place you want on the top row and then back out of it.

However, that was fine as the lowest cost would imply that.  But it does slow down and give more states to consider.

Instead, model the nodes on the top row as being directly connected to the nodes in the second row.  Add some rules about when you can move from one to the other and use those.

This reduces the number of states we have to consider in total.  And hopefully speeds up the process.
2021-12-24 12:34:00 +00:00
mgrettondann cca3a22a43 Proposed solutions for 2021 day 23
Improve speed by using two sets for State management:

states: Contains all the states we need to visit indexed by state - Cost is ignored.
costs:  Contains all the states we need to visit indexed by cost then state.

This then means the lookup for the minimum cost is fast.
2021-12-24 11:53:57 +00:00
mgrettondann b53002d48a Proposed solutions for 2021 day 23 2021-12-23 19:49:33 +00:00
mgrettondann fcfdcddd33 Add 2017 Day 25 puzzles 2021-12-22 16:36:30 +00:00
mgrettondann e06e78ce3c Add 2017 Day 24 puzzles 2021-12-22 15:57:06 +00:00
mgrettondann d1e6f5b086 Fix macOS builds 2021-12-22 15:19:53 +00:00
mgrettondann 997dad69b4 Add 2017 Day 23 puzzles 2021-12-22 15:17:21 +00:00
mgrettondann 3ae7eb86ac Add 2021 Day 22 puzzles 2021-12-22 09:46:52 +00:00
mgrettondann 0953533066 Add 2017 Day 22 puzzles 2021-12-21 15:28:12 +00:00
mgrettondann 7d0fb91103 Add 2017 Day 21 puzzles 2021-12-21 14:04:46 +00:00
mgrettondann 3e718e2aa0 Add 2017 Day 20 puzzle 2 2021-12-21 13:23:49 +00:00
mgrettondann 77811aa473 Add 2021 day 21 puzzles 2021-12-21 10:58:48 +00:00
mgrettondann 495222c63c Add 2021 day 20 puzzles 2021-12-20 07:46:43 +00:00
mgrettondann f74dd3b60d Add 2021 day 19 puzzles 2021-12-19 14:15:04 +00:00
mgrettondann 9e23269d53 Add 2021 day 18 puzzles 2021-12-18 16:29:46 +00:00
mgrettondann da983a9321 Add 2017 day 19 puzzles 2021-12-17 11:41:53 +00:00
mgrettondann a6092d777e Add 2021 day 17 puzzles 2021-12-17 07:55:08 +00:00
mgrettondann 06909578ea Add 2017 day 18 puzzles. 2021-12-16 16:35:43 +00:00
mgrettondann ed471c3bd2 Add 2017 day 17 puzzles. 2021-12-16 14:42:44 +00:00
mgrettondann 2566a75466 Add 2017 day 16 puzzles. 2021-12-16 13:59:58 +00:00
mgrettondann 02087088f9 Add 2017 day 15 puzzles. 2021-12-16 11:50:49 +00:00
mgrettondann 3631a4bb18 Add 2017 day 14 puzzles. 2021-12-16 11:21:52 +00:00
mgrettondann 11c9119dc5 Fix 2021-16-01 build for Linux 2021-12-16 10:39:51 +00:00
mgrettondann c885252279 Add 2017 day 13 puzzles 2021-12-16 10:34:35 +00:00
mgrettondann 81e191a6e2 Add 2021 day 16 puzzles 2021-12-16 09:21:41 +00:00
mgrettondann 04b0dd52c6 Add 2017 day 12 puzzles 2021-12-15 14:43:11 +00:00
mgrettondann 628fec2f5e Add 2017 day 11 puzzles 2021-12-15 13:57:20 +00:00
mgrettondann 7ed598b786 Add 2017 day 10 puzzles 2021-12-15 11:56:13 +00:00
mgrettondann cea324cad9 Add 2017 day 9 puzzles 2021-12-15 11:18:48 +00:00
mgrettondann 0a041cd398 Add 2021 day 15 puzzles 2021-12-15 10:20:08 +00:00
mgrettondann f237a6c3fd Add 2017 day 8 puzzles 2021-12-14 19:26:09 +00:00
mgrettondann 3f09bc29a0 Add 2017 day 7 puzzles 2021-12-14 15:24:05 +00:00
mgrettondann d84673a779 Add 2021 day 14 puzzles 2021-12-14 08:13:01 +00:00
mgrettondann 01be969b51 Fix macOS build 2021-12-14 07:23:49 +00:00
mgrettondann 32598f64a9 Add 2017 day 6 puzzles 2021-12-13 17:25:46 +00:00
mgrettondann 204f9fc02a Add 2017 day 5 puzzles 2021-12-13 16:17:05 +00:00
mgrettondann 3e77d0aacc Add 2017 day 4 puzzles 2021-12-13 14:51:53 +00:00
mgrettondann 9619bb1f35 Add 2017 day 3 puzzles 2021-12-13 14:04:37 +00:00
mgrettondann 920bbb283f Add 2017 day 2 puzzles 2021-12-13 12:11:20 +00:00
mgrettondann 020549d323 Add 2017 day 1 puzzles 2021-12-13 11:49:38 +00:00
mgrettondann e43fca9377 Add 2016 day 25 puzzle 2021-12-13 11:36:48 +00:00
mgrettondann 20d7bc600c Add 2016 day 24 puzzles 2021-12-13 11:04:07 +00:00
mgrettondann b5ef1aa7f0 Fix build on Linux 2021-12-13 10:03:59 +00:00
mgrettondann 5b64f9670f Add 2021 day 13 puzzles 2021-12-13 07:27:34 +00:00
mgrettondann d14bd5a9c6 Tidy 2016 day 23 puzzles 2021-12-12 16:24:14 +00:00
mgrettondann 29ae944018 Add 2016 day 23 puzzles 2021-12-12 16:21:01 +00:00
mgrettondann 624b285d3d Tidyup 2021 day 12 puzzles 2021-12-12 08:06:02 +00:00
mgrettondann 9e9321541a Tidyup 2021 day 12 puzzles 2021-12-12 08:05:13 +00:00
mgrettondann fcaf7595db Add 2021 day 12 puzzles 2021-12-12 08:02:35 +00:00
mgrettondann 300456b9b2 Add 2021 day 11 puzzles 2021-12-11 07:36:13 +00:00
mgrettondann 318243ccea Add 2021 day 10 puzzles 2021-12-10 10:16:46 +00:00
mgrettondann 26ef423b62 Cleanup 2016 day 22 puzzles 2021-12-09 15:05:31 +00:00
mgrettondann 1da63f3e9c Further CLion project config.. 2021-12-09 14:29:32 +00:00
mgrettondann 13fc28398f Add 2021 day 9 puzzles. 2021-12-09 14:29:22 +00:00
mgrettondann 4d5b55df06 CLion setting updates. 2021-12-09 13:55:47 +00:00
mgrettondann d00e5678b3 Include <numeric>
Fixes Linux build failures.
2021-12-09 13:55:37 +00:00
mgrettondann 02a57907ec Add constexpr to some functions.
Fixes Linux build failures.
2021-12-09 13:55:29 +00:00
mgrettondann 802adbb317 Use slightly different OpenSSL interface for Linux
We're not using OpenSSL3 on Linux so use EVP_DigestInit_Ex and not EVP_DigestInit_Ex2.
2021-12-09 13:55:10 +00:00
mgrettondann 3578b298aa Add <cassert> header include
This fixes some Linux build failures.
2021-12-09 13:53:52 +00:00
mgrettondann 290126fd00 Cleanup 2021 day 8 puzzles 2021-12-08 10:33:53 +00:00
mgrettondann ceb89e10b7 Add 2021 day 8 puzzles
Part two needs a tidy-up which will come in a bit.

But this is how I got the correct answer.
2021-12-08 09:42:51 +00:00
mgrettondann 6448f4c487 Add 2016 day 21 puzzles 2021-12-07 19:45:38 +00:00
mgrettondann d3622ff806 Add 2016 day 20 puzzles 2021-12-07 16:09:20 +00:00
mgrettondann 30c5f724bc Add 2016 day 19 puzzles 2021-12-07 12:10:42 +00:00
mgrettondann 0c56620ba6 Add 2016 day 18 puzzles 2021-12-07 11:33:32 +00:00
mgrettondann 3bf122cffd Add 2016 day 17 puzzles
Comments included
2021-12-07 11:20:06 +00:00
mgrettondann 3403a032c5 Add 2016 day 17 puzzles 2021-12-07 11:05:29 +00:00
mgrettondann 9c515351b5 Add 2021 day 7 puzzles 2021-12-07 10:35:28 +00:00
mgrettondann 1b0a27670a Add 2016 day 16 puzzles 2021-12-06 20:36:55 +00:00
mgrettondann 602b46eac7 Add 2016 day 15 puzzles 2021-12-06 20:17:55 +00:00
mgrettondann 8df86d16e4 Add 2016 day 14 puzzles 2021-12-06 19:55:36 +00:00
mgrettondann f540d823a3 Add 2016 day 13 puzzles 2021-12-06 16:16:39 +00:00
mgrettondann 25057df8b2 Add 2016 day 12 puzzles 2021-12-06 14:59:41 +00:00
mgrettondann 279121a3b9 2016 day 11 puzzle 2 tidy up
Add comments and make perform better.
2021-12-06 14:24:19 +00:00
mgrettondann d26de7fd10 Add 2016 day 11 puzzles 2021-12-06 12:55:37 +00:00
mgrettondann 8be9c6d37d Add 2021 day 6 puzzles 2021-12-06 07:52:06 +00:00
mgrettondann 796365bd23 Add 2016 day 10 puzzles 2021-12-05 15:24:09 +00:00
mgrettondann f1b68304bf Add 2021 day 6 puzzles 2021-12-05 12:02:05 +00:00
mgrettondann 71453e98ce Add 2021 day 5 puzzles 2021-12-05 09:11:05 +00:00
mgrettondann c59a2739b6 Add 2016 day 8 puzzles 2021-12-04 17:30:47 +00:00
mgrettondann 3f72fbad3b Add 2016 day 7 puzzles 2021-12-04 17:00:16 +00:00
mgrettondann ef3676f990 Add 2016 day 6 puzzles 2021-12-04 11:33:25 +00:00
mgrettondann ce73fdc740 Ensure no warnings on release builds.
Change assert(false) into abort().
2021-12-04 08:15:11 +00:00
mgrettondann 176d655e3c Add 2021 Day 4 puzzles 2021-12-04 08:04:02 +00:00
mgrettondann 4ba7f6bf14 Add 2016 Day 5 puzzles 2021-12-03 17:13:37 +00:00
mgrettondann edc89cd11b Add 2016 Day 4 puzzles 2021-12-03 16:11:26 +00:00
mgrettondann e00d9e4a00 Add 2016 Day 3 puzzles 2021-12-03 14:33:30 +00:00
mgrettondann ffe517ec42 Add 2016 Day 2 puzzles 2021-12-03 14:00:09 +00:00
mgrettondann b6213c6593 Tidy up 2021 day 3 puzzle 2 code.
This adds some comments and removes code duplication.
2021-12-03 12:32:15 +00:00
mgrettondann b43c4a617e Add 2021 day 3 puzzles 2021-12-03 12:22:03 +00:00