aboutsummaryrefslogtreecommitdiff
path: root/other/num_people_aware_secret.cpp
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2025-03-10 00:36:13 -0600
committerJack Sangdahl <[email protected]>2025-03-10 00:36:13 -0600
commit7c60dee83b436e8e8a667bf9f191beced8de4fc3 (patch)
treeeb7a24ee2067f92245c57bb118e85a1baf15df50 /other/num_people_aware_secret.cpp
parent5d7cdc215e4ba1ec4cbb24c084cccb5e5e641468 (diff)
downloadleetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.tar.gz
leetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.zip
chore: move cpp and rust code to directory
Diffstat (limited to 'other/num_people_aware_secret.cpp')
-rw-r--r--other/num_people_aware_secret.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/other/num_people_aware_secret.cpp b/other/num_people_aware_secret.cpp
new file mode 100644
index 0000000..80a4b91
--- /dev/null
+++ b/other/num_people_aware_secret.cpp
@@ -0,0 +1,27 @@
+#include "leetcode.h"
+
+class Solution {
+public:
+ int peopleAwareOfSecret(int n, int delay, int forget) {
+ long long sharing = 0, mod = 1000000007;
+ deque<int> d{1}, f{1};
+ while (--n > 0) {
+ if (d.size() >= delay) {
+ sharing = (sharing + d.front()) % mod;
+ d.pop_front();
+ }
+ if (f.size() >= forget) {
+ sharing = (mod + sharing - f.front()) % mod;
+ f.pop_front();
+ }
+ d.push_back(sharing);
+ f.push_back(sharing);
+ }
+ return accumulate(begin(f), end(f), 0LL) % mod;
+ }
+};
+
+int main() {
+ Solution obj;
+ cout << obj.peopleAwareOfSecret(6, 2, 4);
+}