#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000100;
int a[MAXN], b[MAXN];
int main() {
  int i, j, k, m, n;
  long long ans = 0;
  scanf("%d", &n);
  for (i = 0; i < n; i++) scanf("%d", a + i);
  rotate(a, max_element(a, a + n), a + n);
  for (i = n - 1; i >= 0; i--) b[i] = max(a[i], b[i + 1]);
  vector<pair<int, int> > v;
  for (i = 0; i < n; i++) {
    for (j = v.size() - 1; j >= 0; j--) {
      if (a[i] > v[j].first) {
        ans += v[j].second;
        v.pop_back();
      } else
        break;
    }
    if (v.size() > 0 && v[v.size() - 1].first == a[i]) {
      if (v.size() > 1) ans++;
      ans += v[v.size() - 1].second;
      v[v.size() - 1].second++;
    } else {
      if (v.size() > 0) ans++;
      v.push_back(make_pair(a[i], 1));
    }
    if (v.size() > 2 || v.size() > 1 && v[0].second > 1) {
      if (a[i] >= b[i]) ans++;
    }
  }
  cout << ans << endl;
  scanf("%*d");
}
