aboutsummaryrefslogtreecommitdiff
path: root/src/2020/day3/aoc.cpp
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2022-04-07 16:39:29 +0800
committerkaiwu <kaiwu2004@gmail.com>2022-04-07 16:39:29 +0800
commit6a5d6a498f1b6f43a72b638f1874b174a3e32bc1 (patch)
treead423a9bc044449cf4e47b215ac4417f8b78a24d /src/2020/day3/aoc.cpp
parentc1ef11f0ff4a5c518caa13c472188fac8fd7981c (diff)
downloadadvent-of-code-6a5d6a498f1b6f43a72b638f1874b174a3e32bc1.tar.gz
advent-of-code-6a5d6a498f1b6f43a72b638f1874b174a3e32bc1.zip
2020 day3
Diffstat (limited to 'src/2020/day3/aoc.cpp')
-rw-r--r--src/2020/day3/aoc.cpp18
1 files changed, 13 insertions, 5 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