From 9a1f073f8e33e8b0d6c97332f51161683cfc6e58 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 9 Dec 2024 14:06:37 +0100 Subject: Day 9 with views::reverse --- 2024/09/day09b.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to '2024/09/day09b.cpp') diff --git a/2024/09/day09b.cpp b/2024/09/day09b.cpp index 3b1ac21..c304ed4 100644 --- a/2024/09/day09b.cpp +++ b/2024/09/day09b.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -21,16 +22,16 @@ int main() { a.push_back(id % 2 == 0 ? id/2 : -1); // -1 = space } - for (int i = file.size()-1; i >= 0; i--) { + for (auto& p : file | views::reverse) { for (auto& f : freesp) { - if (f.first >= file[i].first) break; - if (f.second >= file[i].second) { - for (int k = 0; k < file[i].second; k++) { - a[f.first+k] = a[file[i].first+k]; - a[file[i].first+k] = -2; + if (f.first >= p.first) break; + if (f.second >= p.second) { + for (int k = 0; k < p.second; k++) { + a[f.first+k] = a[p.first+k]; + a[p.first+k] = -2; } - f.first += file[i].second; - f.second -= file[i].second; + f.first += p.second; + f.second -= p.second; break; } } -- cgit v1.3