From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- store/works/solutions/leetcode/cpp/649.cpp | 67 ++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 store/works/solutions/leetcode/cpp/649.cpp (limited to 'store/works/solutions/leetcode/cpp/649.cpp') diff --git a/store/works/solutions/leetcode/cpp/649.cpp b/store/works/solutions/leetcode/cpp/649.cpp new file mode 100644 index 0000000..ab702d2 --- /dev/null +++ b/store/works/solutions/leetcode/cpp/649.cpp @@ -0,0 +1,67 @@ +#include + +using std::string; + +#include + +class Solution +{ +public: + string predictPartyVictory(string senate) + { + std::queue queue; + + int r_people = 0; + int d_people = 0; + int r_ban = 0; + int d_ban = 0; + + for (auto i = senate.cbegin(); i != senate.cend(); ++i) + { + if (*i == 'R') + { + r_people += 1; + queue.push(true); + } + else + { + d_people += 1; + queue.push(false); + } + } + + while (r_people && d_people) + { + bool is_r = queue.front(); + queue.pop(); + if (is_r) + { + if (d_ban) + { + r_people -= 1; + d_ban -= 1; + } + else + { + r_ban += 1; + queue.push(is_r); + } + } + else + { + if (r_ban) + { + d_people -= 1; + r_ban -= 1; + } + else + { + d_ban += 1; + queue.push(is_r); + } + } + } + + return r_people ? "Radiant" : "Dire"; + } +}; -- cgit v1.2.3