diff --git a/2327-number-of-people-aware-of-a-secret/2327-number-of-people-aware-of-a-secret.py b/2327-number-of-people-aware-of-a-secret/2327-number-of-people-aware-of-a-secret.py new file mode 100644 index 0000000..7b12657 --- /dev/null +++ b/2327-number-of-people-aware-of-a-secret/2327-number-of-people-aware-of-a-secret.py @@ -0,0 +1,26 @@ +class Solution(object): + def peopleAwareOfSecret(self, n, delay, forget): + """ + :type n: int + :type delay: int + :type forget: int + :rtype: int + """ + new = [0] * forget + new[0] = 1 + total_known = 1 + cant_tell = 1 + + for i in range(1, n): + index = i % forget + forget_index = index + delay_index = (i - delay + forget) % forget + + total_known -= new[forget_index] + cant_tell -= new[delay_index] + + new[index] = total_known - cant_tell + cant_tell += new[index] + total_known += new[index] + + return total_known % (10 ** 9 + 7) \ No newline at end of file