2
public int peopleAwareOfSecret(int n, int delay, int forget) {3
long mod = 1000000007L;4
long[] shares = new long[n + 1];5
long[] forgets = new long[n + 1];11
forgets[forget + 1] = 1;16
for (int i = delay; i <= n; i++) {17
shareToday += shares[i] % mod;18
shareToday -= forgets[i] % mod;20
peopleKnow -= forgets[i] % mod;21
peopleKnow += shareToday % mod;23
if (i + delay < n + 1) {24
shares[i + delay] += shareToday % mod;26
if (i + forget < n + 1) {27
forgets[i + forget] += shareToday % mod;31
return (int) (peopleKnow % mod);