From 4ed1b3307dc5aaa1b3d04e452df723c272344d6c Mon Sep 17 00:00:00 2001 From: Simponic Date: Mon, 5 Dec 2022 01:28:16 -0700 Subject: [PATCH] Remove some lines --- day-04/a.out | Bin 0 -> 92448 bytes day-04/sol.cpp | 60 +++++++++++++++++++++---------------------------- 2 files changed, 26 insertions(+), 34 deletions(-) create mode 100755 day-04/a.out diff --git a/day-04/a.out b/day-04/a.out new file mode 100755 index 0000000000000000000000000000000000000000..d31e15937edc8f94e039d12e8c00dfa9c289dd8f GIT binary patch literal 92448 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 E|E1b#!T; +enum PROBLEM +{ + PROBLEM_1 = 1, + PROBLEM_2 = 2 +}; + std::tuple, int> build_stacks(std::vector &lines) { int num_stacks = std::ceil(lines[0].size() / 4.0); @@ -42,31 +48,7 @@ std::tuple, int> build_stacks(std::vector & return std::make_tuple(stacks, lines_of_stacks); } -std::string solve1(std::vector &stacks, std::vector &lines, int start_from) -{ - for (auto line = lines.begin() + start_from; line != lines.end(); ++line) - { - std::istringstream iss(*line); - std::string word; - int from = 0, to = 0, amount = 0; - - while (iss >> word >> amount >> word >> from >> word >> to) - ; - - for (int i = 0; i < amount; i++) - { - stacks[to - 1].push(stacks[from - 1].top()); - stacks[from - 1].pop(); - } - } - - std::string result; - for (auto &stack : stacks) - result += stack.top(); - return result; -} - -std::string solve2(std::vector &stacks, std::vector &lines, int start_from) +std::string solve(std::vector &stacks, std::vector &lines, int start_from, PROBLEM problem) { stack_type curr; for (auto line = lines.begin() + start_from; line != lines.end(); ++line) @@ -78,16 +60,26 @@ std::string solve2(std::vector &stacks, std::vector &li while (iss >> word >> amount >> word >> from >> word >> to) ; - for (int i = 0; i < amount; i++) + if (problem == PROBLEM_1) { - curr.push(stacks[from - 1].top()); - stacks[from - 1].pop(); + for (int i = 0; i < amount; ++i) + { + stacks[to - 1].push(stacks[from - 1].top()); + stacks[from - 1].pop(); + } } - - for (int i = 0; i < amount; i++) + else { - stacks[to - 1].push(curr.top()); - curr.pop(); + for (int i = 0; i < amount; ++i) + { + curr.push(stacks[from - 1].top()); + stacks[from - 1].pop(); + } + for (int i = 0; i < amount; ++i) + { + stacks[to - 1].push(curr.top()); + curr.pop(); + } } } @@ -105,9 +97,9 @@ int main() lines.push_back(line); auto [stacks, start_from] = build_stacks(lines); - std::cout << "Solve 1: " << solve1(stacks, lines, start_from + 1) << std::endl; + std::cout << "Solve 1: " << solve(stacks, lines, start_from + 1, PROBLEM_1) << std::endl; auto [stacks2, start_from2] = build_stacks(lines); - std::cout << "Solve 2: " << solve2(stacks2, lines, start_from2 + 1) << std::endl; + std::cout << "Solve 2: " << solve(stacks2, lines, start_from2 + 1, PROBLEM_2) << std::endl; return 0; }