#include <bits/stdc++.h>
using namespace std;
const int MAXN = int(1e5);
const int MAXA = int(1e9);
int N;
int A[MAXN];
signed main() {
  ios::sync_with_stdio(0);
  cin >> N;
  map<int, int> cnt;
  for (int i = 0; i < N; ++i) {
    cin >> A[i];
    ++cnt[A[i]];
  }
  vector<int> m3;
  for (auto it = cnt.begin(); it != cnt.end(); ++it) {
    for (int i = 0; i < it->second and int(m3.size()) < 3; ++i) {
      m3.emplace_back(it->first);
    }
  }
  long long ans = 1;
  for (int i = 0; i < 3;) {
    int j = i;
    while (j < 3 and m3[j] == m3[i]) ++j;
    static auto C = [&](int n, int m) {
      if (m == 1) return 1LL * n;
      if (m == 2) return 1LL * n * (n - 1) / 2;
      return 1LL * n * (n - 1) * (n - 2) / 6;
    };
    ans *= C(cnt[m3[i]], j - i);
    i = j;
  }
  cout << ans << endl;
  return 0;
}
