blob: 80a4b91b33f00df5cacc7a0e56e4dc7071958bff (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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);
}
|