#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef vector vi; typedef vector vvi; typedef pair pii; #define all(c) (c).begin(), (c).end() #define loop(i,a,b) for(ll i=a; iDUMP &operator,(const T&t){if(this->tellp())*this<<", ";*this< ostream& operator<<(ostream& os, vector const& v){ rep(i,v.size()) os << v[i] << (i+1==v.size()?"":" "); return os; } #include int main(){ int n; cin >> n; map m; rep(i,n){ int x; cin>>x; m[x]++; } vector v(all(m)); int t=v.size(); ll ans = 0; rep(i,t)rep(j,i)rep(k,j){ ans += v[i].second*v[j].second*v[k].second; ans %= 1000000007; } cout << ans << endl; }