/* -*- coding: utf-8 -*- * * 118.cc: No.118 ι–€ζΎεˆ—(2) - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 100000; typedef long long ll; const ll MOD = 1000000007; /* typedef */ typedef vector vi; typedef queue qi; typedef pair pii; /* global variables */ int cn; int as[MAX_N], cs[MAX_N]; /* subroutines */ ll rec(int k, int r) { if (r <= 0) return 1; ll sum = 0; for (int i = k; i < cn; i++) sum = (sum + rec(i + 1, r - 1) * cs[i]) % MOD; return sum; } /* main */ int main() { int n; cin >> n; for (int i = 0; i < n; i++) cin >> as[i]; sort(as, as + n); cn = 0; int pa = 0; for (int i = 0; i < n; i++) { if (pa != as[i]) cs[cn++] = 1; else cs[cn - 1]++; pa = as[i]; } //for (int i = 0; i < cn; i++) printf("%d ", cs[i]); putchar('\n'); ll ans = rec(0, 3); printf("%lld\n", ans); return 0; }