3
* @param {number} delay4
* @param {number} forget7
var peopleAwareOfSecret = function (n, delay, forget) {8
const dp = new Array(n + 1).fill(0);9
let numberOfPeopleSharingSecret = 0;10
let totalNumberOfPeopleWithSecret = 0;11
const MOD = 1000000007n;13
dp[1] = 1; // as on day one only one person knows the secret15
for (let i = 2; i <= n; i++) {16
const numberOfNewPeopleSharingSecret = dp[Math.max(i - delay, 0)];17
const numberOfPeopleForgettingSecret = dp[Math.max(i - forget, 0)];18
numberOfPeopleSharingSecret =19
BigInt(numberOfPeopleSharingSecret) +20
((BigInt(numberOfNewPeopleSharingSecret) -21
BigInt(numberOfPeopleForgettingSecret) +25
dp[i] = numberOfPeopleSharingSecret;28
for (let i = n - forget + 1; i <= n; i++) {29
totalNumberOfPeopleWithSecret =30
(BigInt(totalNumberOfPeopleWithSecret) + BigInt(dp[i])) % BigInt(MOD);33
return totalNumberOfPeopleWithSecret;