diff options
| author | Thomas Schmucker <ts@its1.de> | 2024-01-02 20:23:16 +0100 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2024-01-02 20:23:16 +0100 |
| commit | 1c2555b3574b9498347b8254ec5be90d9e0015f8 (patch) | |
| tree | f43a5e8dc523af49cdd5a2c7389a3977b0da9c88 /src/day14.cpp | |
| parent | e95d22d3927549caa5c259a59aedaa67d3b636ca (diff) | |
| download | advent-of-code-1c2555b3574b9498347b8254ec5be90d9e0015f8.tar.gz advent-of-code-1c2555b3574b9498347b8254ec5be90d9e0015f8.tar.bz2 advent-of-code-1c2555b3574b9498347b8254ec5be90d9e0015f8.zip | |
clean up
Diffstat (limited to 'src/day14.cpp')
| -rw-r--r-- | src/day14.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/day14.cpp b/src/day14.cpp index 2b7a5b8..8816ce1 100644 --- a/src/day14.cpp +++ b/src/day14.cpp | |||
| @@ -21,10 +21,8 @@ read_file(string_view filename) | |||
| 21 | } | 21 | } |
| 22 | 22 | ||
| 23 | void | 23 | void |
| 24 | part1() | 24 | part1(const vector<string>& lines) |
| 25 | { | 25 | { |
| 26 | const auto lines = read_file("data/day14.txt"); | ||
| 27 | |||
| 28 | auto start = chrono::steady_clock::now(); | 26 | auto start = chrono::steady_clock::now(); |
| 29 | 27 | ||
| 30 | size_t sum = 0; | 28 | size_t sum = 0; |
| @@ -182,10 +180,9 @@ tilt_east(vector<string>& lines) | |||
| 182 | void | 180 | void |
| 183 | tilt(vector<string>& lines) | 181 | tilt(vector<string>& lines) |
| 184 | { | 182 | { |
| 185 | tilt_north(lines); | 183 | for ( auto tilt: { tilt_north, tilt_west, tilt_south, tilt_east } ) { |
| 186 | tilt_west(lines); | 184 | tilt(lines); |
| 187 | tilt_south(lines); | 185 | } |
| 188 | tilt_east(lines); | ||
| 189 | } | 186 | } |
| 190 | 187 | ||
| 191 | size_t | 188 | size_t |
| @@ -201,16 +198,14 @@ calc(const vector<string>& lines) | |||
| 201 | } | 198 | } |
| 202 | 199 | ||
| 203 | void | 200 | void |
| 204 | part2() | 201 | part2(vector<string> lines) |
| 205 | { | 202 | { |
| 206 | auto lines = read_file("data/day14.txt"); | ||
| 207 | |||
| 208 | auto start = chrono::steady_clock::now(); | 203 | auto start = chrono::steady_clock::now(); |
| 209 | map<vector<string>, long> cache; | 204 | map<vector<string>, long> cache; |
| 210 | 205 | ||
| 211 | const long dest = 1'000'000'000; | 206 | const long dest = 1'000'000'000; |
| 212 | 207 | ||
| 213 | for ( long index = 0; true; ++index ) { | 208 | for ( long index = 0;; ++index ) { |
| 214 | auto iter = cache.find(lines); | 209 | auto iter = cache.find(lines); |
| 215 | if ( iter != cache.end() ) { | 210 | if ( iter != cache.end() ) { |
| 216 | auto offset = iter->second; | 211 | auto offset = iter->second; |
| @@ -238,6 +233,7 @@ part2() | |||
| 238 | int | 233 | int |
| 239 | main() | 234 | main() |
| 240 | { | 235 | { |
| 241 | part1(); | 236 | const auto lines = read_file("data/day14.txt"); |
| 242 | part2(); | 237 | part1(lines); |
| 238 | part2(lines); | ||
| 243 | } | 239 | } |
