From 185ef9fcb0e59f13e9ee0ccb261693cdaddebab0 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 23 Feb 2021 21:07:19 +0800 Subject: import(solutions): Move leetcode solutions to subdir. --- works/solutions/leetcode/cpp/1052.cpp | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 works/solutions/leetcode/cpp/1052.cpp (limited to 'works/solutions/leetcode/cpp/1052.cpp') diff --git a/works/solutions/leetcode/cpp/1052.cpp b/works/solutions/leetcode/cpp/1052.cpp new file mode 100644 index 0000000..583e217 --- /dev/null +++ b/works/solutions/leetcode/cpp/1052.cpp @@ -0,0 +1,47 @@ +#include +// #include +#include + +using std::vector; + +class Solution { +public: + int maxSatisfied(vector &customers, vector &grumpy, int X) { + int customer_count = customers.size(); + + int total_customer_count = 0; + int total_unsatisfied_customer_count = 0; + + for (int i = 0; i < X; i++) { + total_customer_count += customers[i]; + if (grumpy[i]) { + total_unsatisfied_customer_count += customers[i]; + } + } + + int current_suppress_customer_count = total_unsatisfied_customer_count; + int max_suppress_customer_count = total_unsatisfied_customer_count; + + for (int i = X; i < customer_count; i++) { + total_customer_count += customers[i]; + if (grumpy[i]) { + total_unsatisfied_customer_count += customers[i]; + current_suppress_customer_count += customers[i]; + } + + if (grumpy[i - X]) { + current_suppress_customer_count -= customers[i - X]; + } + + max_suppress_customer_count = std::max(max_suppress_customer_count, + current_suppress_customer_count); + } + + // std::cout << total_customer_count << '\n'; + // std::cout << total_unsatisfied_customer_count << '\n'; + // std::cout << max_suppress_customer_count << '\n'; + + return total_customer_count - total_unsatisfied_customer_count + + max_suppress_customer_count; + } +}; -- cgit v1.2.3