Skip to content

Commit 6eb50a3

Browse files
authored
2327. Number of People Aware of a Secret.cpp
1 parent 18868a5 commit 6eb50a3

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class Solution {
2+
public:
3+
int peopleAwareOfSecret(int n, int delay, int forget) {
4+
const long long MOD = 1000000007LL;
5+
if (n == 1) return 1;
6+
vector<long long> dp(n+1);
7+
dp[1] = 1;
8+
long long window = 0;
9+
for (int i = 2; i <= n; ++i) {
10+
int enter = i - delay;
11+
int exit = i - forget;
12+
if (enter >= 1) window = (window + dp[enter]) % MOD;
13+
if (exit >= 1) window = (window - dp[exit] + MOD) % MOD;
14+
dp[i] = window;
15+
}
16+
long long ans = 0;
17+
int start = max(1, n - forget + 1);
18+
for (int i = start; i <= n; ++i) ans = (ans + dp[i]) % MOD;
19+
return (int)ans;
20+
}
21+
};

0 commit comments

Comments
 (0)