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
mgrettondann
da8f874574
Add 2016 day 1 puzzles.
2021-12-02 20:45:07 +00:00
mgrettondann
9ecc3ff53d
Update some 2015 sources to .clang-tidy
2021-12-02 19:57:58 +00:00
mgrettondann
7ab7ecb00a
Update 2021 sources to pass clang-tidy
2021-12-02 07:31:53 +00:00
mgrettondann
87d9b62240
CLion should use .clang-format
2021-12-02 07:31:25 +00:00
mgrettondann
4de9acf69c
Add .clang-tidy
2021-12-02 07:31:10 +00:00
mgrettondann
cd5e2538df
Add .clang-format and apply it
2021-12-02 07:18:16 +00:00
mgrettondann
e58dede1b6
Add .editorconfig
2021-12-02 07:15:35 +00:00
mgrettondann
d9e1d2cf89
Add day 2 of 2021's puzzles.
2021-12-02 06:57:48 +00:00