Commit Graph

76 Commits

Author SHA1 Message Date
Stefan Müller 2ff41caf37 Added caching of calculated combinations per block for day 12 2024-11-19 22:58:15 +01:00
Stefan Müller 16e7528b34 Updated day 12 WIP performance refactor
- Added TValidationsToBlockAssignments to replace the loops in
  TConditionRecord.GenerateBlockAssignments
2024-11-19 18:14:14 +01:00
Stefan Müller ec6928679a Updated day 12 WIP performance refactor
- Added combinations calculation directly to the multi-index enumerable
  (TValidationPositionOffsets) and added new intermediate derived class
  TAccumulatedCombinationsMultiIndexStrategy to make this reusable for the other
  enumerables
- Removed TBinomialCoefficientCache instances and used new global instance instead
- Renamed TValidationToDamageAssignments to TDamageToValidationAssignments
2024-11-17 23:55:25 +01:00
Stefan Müller 05863842df Added TBlock to replace the block strings for day 12 2024-11-15 19:08:33 +01:00
Stefan Müller 1642c7dcfb Updated day 12 WIP solver (correct solution) 2024-11-12 19:16:12 +01:00
Stefan Müller 60ef49c1ee Updated day 12 WIP solver 2024-11-10 23:04:01 +01:00
Stefan Müller 1d399cc5b6 Updated day 12 WIP solver 2024-11-09 00:42:11 +01:00
Stefan Müller 151b5dc49a Updated day 12 WIP solver 2024-10-15 11:45:44 +02:00
Stefan Müller c0ee7894ae Added initial attempt for "Day 12: Hot Springs", part 2 including test cases 2024-07-03 20:48:50 +02:00
Stefan Müller ba4195af82 Added solution for "Day 18: Lavaduct Lagoon", part 2 2024-07-03 20:41:19 +02:00
Stefan Müller b086038aa5 Added solution for "Day 18: Lavaduct Lagoon", part 1 2024-06-29 01:03:16 +02:00
Stefan Müller 00f90a1da9 Fixed nested if block in USandSlabs.pas 2024-06-26 21:16:02 +02:00
Stefan Müller d79bd2e78a Removed unused unit includes, left from older changes 2024-06-25 22:23:58 +02:00
Stefan Müller 7b33e8b406 Added solution for "Day 17: Clumsy Crucible", part 2 2024-06-25 22:22:52 +02:00
Stefan Müller ba1cefc371 Added solution for "Day 17: Clumsy Crucible", part 1 2024-06-19 22:38:24 +02:00
Stefan Müller 8eb76329c1 Moved common TPoint direction code into new unit 2024-06-10 20:48:07 +02:00
Stefan Müller 19509c6173 Fixed memory leak in TSnowverload 2024-06-10 20:46:54 +02:00
Stefan Müller 3f83f888f3 Updated solution for day 25, significantly speeding up the algorithm 2024-06-05 13:40:31 +02:00
Stefan Müller c5ea70ed21 Added solution for "Day 25: Snowverload", part 1 2024-06-04 17:14:24 +02:00
Stefan Müller 859a5db921 Merge branch 'day24-analytical' 2024-05-27 02:53:03 +02:00
Stefan Müller b27b14a153 Fixed day 24 helper variable indices 2024-05-27 02:52:22 +02:00
Stefan Müller 3e3e1d45d3 Added solution "Day 24: Never Tell Me The Odds", part 2 2024-05-27 02:29:49 +02:00
Stefan Müller 5b0a7996c5 Changed some of the expected input file names to stay closer to the day titles 2024-02-22 22:54:45 +01:00
Stefan Müller 44c2c845e0 Added WIP analytical solution attempt 2024-02-21 21:05:34 +01:00
Stefan Müller 571019d604 Removed fgl references 2023-12-30 23:20:52 +01:00
Stefan Müller fb3f41a6af Added solution for "Day 24: Never Tell Me The Odds", part 1 2023-12-26 19:46:35 +01:00
Stefan Müller 5495b32692 Added solution for "Day 23: A Long Walk", part 1 2023-12-25 00:44:13 +01:00
Stefan Müller c3ecaf59fa Added custom constructors for TCosmicExpansion and TStepCounter to simplify test case setup 2023-12-23 20:16:18 +01:00
Stefan Müller 2bb89c952b Added solution for "Day 22: Sand Slabs", part 2 2023-12-23 20:08:10 +01:00
Stefan Müller 7b77846abc Added solution for "Day 22: Sand Slabs", part 1 2023-12-23 01:30:41 +01:00
Stefan Müller 197e5f81b9 Removed left-over comments from TStepCounter 2023-12-22 15:15:56 +01:00
Stefan Müller bc2568756b Added solution for "Day 21: Step Counter", part 1 2023-12-21 21:11:31 +01:00
Stefan Müller 55f8f3d674 Added solution for "Day 20: Pulse Propagation", part 1 2023-12-21 16:14:00 +01:00
Stefan Müller b2bfbf1993 Added solution for "Day 19: Aplenty", part 2 2023-12-20 19:25:21 +01:00
Stefan Müller c3019613bd Added solution for "Day 19: Aplenty", part 1 2023-12-20 11:41:17 +01:00
Stefan Müller 58da932860 Added empty skeleton implementations and tests for days 17, 18, and 19 2023-12-19 17:57:58 +01:00
Stefan Müller 01ec0be32c Added solution for "Day 16: The Floor Will Be Lava", part 2 2023-12-19 17:26:18 +01:00
Stefan Müller e9737f0265 Moved the constants in UFloorWillBeLava below the types so that they can be together in a single const block 2023-12-19 13:15:46 +01:00
Stefan Müller 58c677f409 Added solution for "Day 16: The Floor Will Be Lava", part 1 2023-12-19 13:11:39 +01:00
Stefan Müller 2902689d07 Removed day 14 debugging code 2023-12-18 21:14:35 +01:00
Stefan Müller 95de6f1f7b Added another small performance improvement for day 14 2023-12-18 21:13:50 +01:00
Stefan Müller 29663ad82e Merge branch 'day14-test' 2023-12-18 20:33:47 +01:00
Stefan Müller 515d39da40 Updated day 14 algorithm to not operate directly on the strings 2023-12-18 20:30:24 +01:00
Stefan Müller d582eb4d52 Added solution for "Day 15: Lens Library", part 2 2023-12-17 23:11:44 +01:00
Stefan Müller 3501f6f574 Added solution for "Day 15: Lens Library", part 1 2023-12-15 18:21:37 +01:00
Stefan Müller d8b298dad8 Updated day 14 solution with some small code improvements 2023-12-15 00:46:21 +01:00
Stefan Müller 22b9a24893 Added solution for "Day 14: Parabolic Reflector Dish", part 2 2023-12-14 21:23:07 +01:00
Stefan Müller f9583e684d Added solution for "Day 14: Parabolic Reflector Dish", part 1 2023-12-14 17:51:45 +01:00
Stefan Müller 01267c8f79 Refactored TPointOfIncidence to better unify the algorithm for both parts 2023-12-14 00:52:28 +01:00
Stefan Müller 307eb14b55 Added solution for "Day 13: Point of Incidence", part 2 2023-12-14 00:32:27 +01:00