diff options
| -rw-r--r-- | 2024/src/day03.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/2024/src/day03.cpp b/2024/src/day03.cpp index bfbd781..774404d 100644 --- a/2024/src/day03.cpp +++ b/2024/src/day03.cpp | |||
| @@ -9,7 +9,7 @@ string | |||
| 9 | read_file(string_view filename) | 9 | read_file(string_view filename) |
| 10 | { | 10 | { |
| 11 | fstream input{ filename }; | 11 | fstream input{ filename }; |
| 12 | return { istream_iterator<char>{ input }, {} }; | 12 | return { istreambuf_iterator<char>{ input }, {} }; |
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | void | 15 | void |
| @@ -29,16 +29,16 @@ part2(const string& data) | |||
| 29 | { | 29 | { |
| 30 | static const regex pattern{ R"(do\(\)|don't\(\)|mul\((\d{1,3}),(\d{1,3})\))" }; | 30 | static const regex pattern{ R"(do\(\)|don't\(\)|mul\((\d{1,3}),(\d{1,3})\))" }; |
| 31 | 31 | ||
| 32 | long sum = 0; | 32 | long sum = 0; |
| 33 | bool state = true; | 33 | bool enabled = true; |
| 34 | for ( auto it = sregex_iterator{ data.begin(), data.end(), pattern }; it != sregex_iterator{}; ++it ) { | 34 | for ( auto it = sregex_iterator{ data.begin(), data.end(), pattern }; it != sregex_iterator{}; ++it ) { |
| 35 | if ( it->str() == "do()" ) { | 35 | if ( it->str() == "do()" ) { |
| 36 | state = true; | 36 | enabled = true; |
| 37 | } | 37 | } |
| 38 | else if ( it->str() == "don't()" ) { | 38 | else if ( it->str() == "don't()" ) { |
| 39 | state = false; | 39 | enabled = false; |
| 40 | } | 40 | } |
| 41 | else if ( state ) { | 41 | else if ( enabled ) { |
| 42 | sum += stol((*it)[1]) * stol((*it)[2]); | 42 | sum += stol((*it)[1]) * stol((*it)[2]); |
| 43 | } | 43 | } |
| 44 | } | 44 | } |
