diff options
author | kaiwu <kaiwu2004@gmail.com> | 2022-04-07 16:39:29 +0800 |
---|---|---|
committer | kaiwu <kaiwu2004@gmail.com> | 2022-04-07 16:39:29 +0800 |
commit | 6a5d6a498f1b6f43a72b638f1874b174a3e32bc1 (patch) | |
tree | ad423a9bc044449cf4e47b215ac4417f8b78a24d /src | |
parent | c1ef11f0ff4a5c518caa13c472188fac8fd7981c (diff) | |
download | advent-of-code-6a5d6a498f1b6f43a72b638f1874b174a3e32bc1.tar.gz advent-of-code-6a5d6a498f1b6f43a72b638f1874b174a3e32bc1.zip |
2020 day3
Diffstat (limited to 'src')
-rw-r--r-- | src/2020/day3/aoc.cpp | 18 | ||||
-rw-r--r-- | src/2020/day3/aoc.h | 2 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/2020/day3/aoc.cpp b/src/2020/day3/aoc.cpp index e135988..1315e2b 100644 --- a/src/2020/day3/aoc.cpp +++ b/src/2020/day3/aoc.cpp @@ -30,7 +30,7 @@ void progress(pos p, pos* d1, pos* d2, int dx, const std::vector<line_view>& tre } } -int day3(line_view file) { +std::pair<int, size_t> day3(line_view file) { std::vector<line_view> trees; per_line(file, [&trees](line_view lv) { trees.push_back({lv.line, lv.line + lv.length - 1}); @@ -39,10 +39,18 @@ int day3(line_view file) { pos d1{3, 1}; pos d2{0, 0}; - int count{0}; - progress({0, 0}, &d1, &d2, 0, trees, &count); - - return count; + int count0{0}; + progress({0, 0}, &d1, &d2, 0, trees, &count0); + + int count1{0}; + size_t total{1}; + pos ds[] = {{1, 1}, {3, 1}, {5, 1}, {7, 1}, {1, 2}}; + for (auto& d : ds) { + progress({0, 0}, &d, &d2, 0, trees, &count1); + total *= count1; + count1 = 0; + } + return {count0, total}; } } // namespace aoc2020 diff --git a/src/2020/day3/aoc.h b/src/2020/day3/aoc.h index 58e49a5..d32423a 100644 --- a/src/2020/day3/aoc.h +++ b/src/2020/day3/aoc.h @@ -3,5 +3,5 @@ namespace aoc2020 { -int day3(line_view); +std::pair<int, size_t> day3(line_view); } |