Commit Graph

224 Commits

Author SHA1 Message Date
bert 851868bed4 Even more clean up.
Removed duplicated code in the descend stage and moved it to different
functions. Also, range finders are no longer technically infinite, but
are assumed to be.
2018-12-17 11:45:23 +01:00
bert a632bdff10 Clean up. 2018-12-17 08:33:16 +01:00
bert f175584ccf Update LOC graph. 2018-12-17 08:19:37 +01:00
bert 45a8b38ad4 Implement day 17.
Today was a nice exercise, and I got to be somewhat fast too. Number 328/314.
2018-12-17 08:18:25 +01:00
bert eaa868017d Elaborate on tests. 2018-12-16 16:31:17 +01:00
bert fbac0fb7f7 Update README.
README now includes a small graphic with the lines of code per day.
2018-12-16 16:27:29 +01:00
bert 718fd72cef Implement day 16 part 2. 2018-12-16 16:19:37 +01:00
bert 4fa6998369 Implement day 16 part 1. 2018-12-16 11:12:32 +01:00
bert 5b87c12b5f Remove numpy dependency. 2018-12-16 00:20:08 +01:00
bert ed77e30cbf Add a plotting script for how terrible simulations are. 2018-12-15 23:24:36 +01:00
bert 7369fd2290 Small improvement to day 15. 2018-12-15 22:25:59 +01:00
bert 14a766f6f2 Implement day 15 part 2. 2018-12-15 22:16:30 +01:00
bert 10918a62ad Fix day 15 part 1. 2018-12-15 21:12:58 +01:00
bert ae51e3c114 Clean up and simplify.
The idea is that this makes it easier to debug. I'm not sure it does
yet.
2018-12-15 19:12:33 +01:00
bert 44e5c38268 Attempt to fix Ubuntu incompatibility. 2018-12-15 18:11:16 +01:00
bert baf07a7eaf Reuse manhattan implementation from common. 2018-12-15 18:08:42 +01:00
bert 069e381aeb Partial solution for day 15 part 1.
Partial in the sense that it doesn't actually work for my input, only
for the samples.
2018-12-15 18:02:16 +01:00
bert bcccc85073 Reimplement day 14 with infinite streams. 2018-12-14 14:48:53 +01:00
bert ccdbea4a1c Off-by-one bug fix 2018-12-14 12:02:27 +01:00
bert 5c4646b323 Clean up. 2018-12-14 11:48:48 +01:00
bert f4a7b06d47 Reuse input helper. 2018-12-14 11:42:44 +01:00
bert 98da0a9857 Implement day 14. 2018-12-14 11:37:30 +01:00
bert faf3ad90d9 Make day 12 even more rusty. 2018-12-13 14:55:30 +01:00
bert 0de6e22a00 Deduplicate day 12. 2018-12-13 14:47:00 +01:00
bert 91f0ec55f1 Slightly cleaned up by using structs. 2018-12-13 11:44:18 +01:00
bert e6c8c6b100 Implement a very ugly part 2. 2018-12-13 11:24:03 +01:00
bert 973c9ed63b Add a part1 implementation and wrong part2. 2018-12-13 10:52:32 +01:00
bert e22f934ea6 Remove code duplication. 2018-12-12 16:12:26 +01:00
bert 8340f2c8fa Preallocate correct state length. 2018-12-12 13:08:35 +01:00
bert 247613555b Implement day 12 part 2.
This in no way should work, but it does, at least for my input.
2018-12-12 12:44:27 +01:00
bert fd3e509841 Implement part 1 of day 12.
Part two is going to take 31 hours of computation, so I might need to
improve that.
2018-12-12 11:30:45 +01:00
bert b245e0911d Implement the summed-area-table algorithm.
Which is somewhat awkward for the edge cases (that are not in my input!)
but is really fast anyway.
2018-12-11 18:14:15 +01:00
bert 4b8255728c Remove an invalid optimization. 2018-12-11 15:49:39 +01:00
bert 59be8e9d7a Implement day 11 part 2. 2018-12-11 11:06:20 +01:00
bert ff8bc97329 Implement day 11 part 1. 2018-12-11 10:31:23 +01:00
bert eaf1156ae0 Refactor for autovectorization.
By storing x/y as a vector of ints instead of a vector of tuples, the
compiler recognizes it for what it is: a huge vector multiplication. Now
the compiler emits AVX2 instructions.
2018-12-10 17:13:10 +01:00
bert c3480482f2 Implement an estimator function for day 10.
This bumps the speed tenfold.
2018-12-10 14:17:57 +01:00
bert c94555fda1 Implement day 10.
This implementation is stupid but it works.
2018-12-10 13:13:29 +01:00
bert 63a5f81d8c Pre-allocate correct size. 2018-12-09 17:47:22 +01:00
bert c17be69910 Replace linkedlist with VecDeq.
Slightly slower but a lot cleaner.
2018-12-09 13:27:05 +01:00
bert 9b287a0098 Prepare future scaffolding.
Also reformat the code, but that is nothing significant.
2018-12-09 13:02:54 +01:00
bert 9b04e3b2c9 Implement day 9 part 2.
Linked lists in rust are a pain, but we got there.
2018-12-09 10:57:47 +01:00
bert e101dbd58c Move get_impl to crate. 2018-12-09 10:49:04 +01:00
bert 1d5869af70 Implement day 9 part 1. 2018-12-09 10:47:21 +01:00
bert cf6f4f9e1e Better usage of clap. 2018-12-08 08:00:43 +01:00
bert 880ae49be6 Split lib/bin. 2018-12-08 07:37:04 +01:00
bert c0052c8c24 Replace filter + map with filter_map. 2018-12-08 07:32:46 +01:00
bert 7245cdf6b5 Implement day 08 in rust. 2018-12-08 07:15:27 +01:00
bert 2b732c2285 Implement day 08, in python.
Attempted to reach the leaderboard. Failed miserably. Trying again soon
anyway.
2018-12-08 07:13:48 +01:00
bert 0c07cbda24 Remove unused hashset. 2018-12-07 18:13:40 +01:00