#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef pair P; #define MOD 1000000007 // 10^9 + 7 #define INF 1000000000 // 10^9 #define LLINF 1LL<<60 int main() { cin.tie(0); ios::sync_with_stdio(false); int N; cin >> N; vector V; for (int i = 0; i < N; i++) { int tmp; cin >> tmp; V.push_back(tmp); } sort(V.begin(), V.end()); vector W; for (int i = 0; i < N; i++) { int tmp = V[i]; int cnt = 1; while (i < N && V[i + 1] == tmp) { cnt++; i++; } W.push_back(ll(cnt)); } ll ans = 0; for (int i = 0; i < W.size(); i++) { for (int j = i+1; j < W.size(); j++) { for (int k = j+1; k < W.size(); k++) { ans += W[i] * W[j] * W[k]; ans %= MOD; } } } cout << ans << endl; return 0; }