aboutsummaryrefslogtreecommitdiff
path: root/src/2020/day9/aoc.cpp
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2022-12-05 16:54:51 +0800
committerkaiwu <kaiwu2004@gmail.com>2022-12-05 16:54:51 +0800
commit1a311c7983f71668b6f892018328f1669f3574fd (patch)
tree755b5d9f8a70b144fa92d77f9882df4dc8d4150b /src/2020/day9/aoc.cpp
parentaf1074a592e6cd246dd2db726ccc4eb6873e3ba4 (diff)
downloadadvent-of-code-1a311c7983f71668b6f892018328f1669f3574fd.tar.gz
advent-of-code-1a311c7983f71668b6f892018328f1669f3574fd.zip
2020 day9
Diffstat (limited to 'src/2020/day9/aoc.cpp')
-rw-r--r--src/2020/day9/aoc.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/2020/day9/aoc.cpp b/src/2020/day9/aoc.cpp
index c7a826f..10ba789 100644
--- a/src/2020/day9/aoc.cpp
+++ b/src/2020/day9/aoc.cpp
@@ -30,11 +30,25 @@ bool check25(int i, int* weak) {
}
bool check_contiguous(int i, int* end, int target) {
- return false;
+ if (target == 0) {
+ *end = i;
+ return true;
+ }
+ if (target < 0) {
+ return false;
+ }
+ return check_contiguous(i + 1, end, target - numbers[i]);
}
static void minmax(int x, int y, int* min, int* max) {
-
+ for(int i = x; i < y; i++) {
+ if (*min > numbers[i]) {
+ *min = numbers[i];
+ }
+ if (*max < numbers[i]) {
+ *max = numbers[i];
+ }
+ }
}
std::pair<int, int> day9(line_view file) {