aboutsummaryrefslogtreecommitdiff
path: root/2024/09/day09a.cpp
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-12-09 14:06:37 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2024-12-09 14:06:37 +0100
commit9a1f073f8e33e8b0d6c97332f51161683cfc6e58 (patch)
treee6d0fab34f4d0c4270cbbe552cb94507194d1c50 /2024/09/day09a.cpp
parent93f9d02e978d10b4ff02ac029b6a6eff3d3193cf (diff)
downloadaoc-9a1f073f8e33e8b0d6c97332f51161683cfc6e58.tar.gz
aoc-9a1f073f8e33e8b0d6c97332f51161683cfc6e58.zip
Day 9 with views::reverse
Diffstat (limited to '')
-rw-r--r--2024/09/day09a.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/2024/09/day09a.cpp b/2024/09/day09a.cpp
index c52c8f0..80732d7 100644
--- a/2024/09/day09a.cpp
+++ b/2024/09/day09a.cpp
@@ -1,6 +1,7 @@
1#include <algorithm> 1#include <algorithm>
2#include <iostream> 2#include <iostream>
3#include <map> 3#include <map>
4#include <ranges>
4#include <set> 5#include <set>
5#include <sstream> 6#include <sstream>
6#include <string> 7#include <string>
@@ -16,11 +17,11 @@ int main() {
16 a.push_back(id % 2 == 0 ? id/2 : -1); // -1 = space 17 a.push_back(id % 2 == 0 ? id/2 : -1); // -1 = space
17 18
18 int j = 0; 19 int j = 0;
19 for (int i = a.size()-1; i >= 0; i--) { 20 for (auto& x : a | views::reverse) {
20 while (a[j] >= 0) j++; 21 while (a[j] >= 0) j++;
21 if (a[j] == -2) break; 22 if (a[j] == -2) break;
22 a[j] = a[i]; 23 a[j] = x;
23 a[i] = -2; // -2 = freed up 24 x = -2; // -2 = freed up
24 } 25 }
25 26
26 long long checksum = 0; 27 long long checksum = 0;

Generated with cgit - Back to sebastiano.tronto.net