#include #include #include #include #include #include #include #include #include #include #include #include #include #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() using namespace std; typedef long long ll; typedef pair pi; typedef pair pl; typedef pair pls; ll C[100010][4]; ll mod = (ll)1e9 + 7; void comb_table(ll N) { for (ll i = 0; i <= N; i++) { for (ll j = 0; j <= 4; j++) { if (j == 0 || j == i) { C[i][j] = 1LL; } else { C[i][j] = C[i - 1][j - 1] + C[i - 1][j]; C[i][j] %= mod; } } } } map m; int main() { ll N; cin >> N; comb_table(N); int L[100010]; for (int i = 0; i < N; i++) { cin >> L[i]; m[L[i]]++; } sort(L, L + N); ll num = 1; for (int i = 1; i < N; i++) { if (L[i] != L[i - 1]) num++; } ll ans; ans = C[num][3]; for (int i = 0; i < N; i++) { ans *= m[L[i]]; ans %= mod; m[L[i]] = 1; } cout << ans << endl; return 0; }