aboutsummaryrefslogtreecommitdiff
path: root/src/2018/day3/aoc.cpp
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2022-04-06 17:59:52 +0800
committerkaiwu <kaiwu2004@gmail.com>2022-04-06 17:59:52 +0800
commitd98f48eb780f51ee146b316b5ddf7ebd0bea6019 (patch)
tree6746157ebb4eb918e90ddde8dd8937e90ba00618 /src/2018/day3/aoc.cpp
parentd5382bf6436dbb040fb4aa664135d8c1cb0fc3eb (diff)
downloadadvent-of-code-d98f48eb780f51ee146b316b5ddf7ebd0bea6019.tar.gz
advent-of-code-d98f48eb780f51ee146b316b5ddf7ebd0bea6019.zip
2018 day3
Diffstat (limited to 'src/2018/day3/aoc.cpp')
-rw-r--r--src/2018/day3/aoc.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/2018/day3/aoc.cpp b/src/2018/day3/aoc.cpp
index c5aa403..3ea5432 100644
--- a/src/2018/day3/aoc.cpp
+++ b/src/2018/day3/aoc.cpp
@@ -2,14 +2,23 @@
namespace aoc2018 {
-int day3(line_view file, int x) {
+std::pair<int, int> day3(line_view file, int x) {
+
fabric* f = new fabric;
- per_line(file, [&f](line_view lv) {
- f->parse(lv);
+ std::vector<claim> cs;
+ per_line(file, [&f, &cs](line_view lv) {
+ f->parse(lv, cs);
return true;
});
- return f->count(x);
+ int id{0};
+ for (auto& c : cs) {
+ if (!f->overlap(c)) {
+ id = c.id;
+ }
+ }
+
+ return {f->count(x), id};
}
} // namespace aoc2018