Problem Description
An array is good if all the elements present in it have the same frequency. For example, [2, 3, 3, 2] is good because both 2 and 3 have frequency 2. [2, 3, 2] is not good because the frequencies of 2 and 3 are 2 and 1 respectively. You are given an array A. You need to count the number of non-empty good subsequences of A. Since the answer can be large, return it modulo 109+7.
1 <= |A| <= 200000
1 <= A[i] <= 109
First argument is an integer array A.
Return the number of good subsequences modulo 109+7.
Input 1:
A = [1, 2, 1]
Input 2:
A = [5, 10, 2]
Output 1:
6
Output 2:
7
Explanation 1:
Let's denote a subsequence by its set of indices and assume array to be 0 indexed. Then the following subsequences are good-
{0}, {1}, {2}, {0, 1}, {1, 2}, {0, 2}.
Explanation 2:
All the subsequences are good. So there are 23 - 1 = 7 subsequences.
NOTE: You only need to implement the given function. Do not read input, instead use the arguments to the function. Do not print the output, instead return values as specified. Still have a question? Checkout Sample Codes for more details.