#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000010;
int H[maxn], L[maxn], R[maxn], C[maxn];
int n;
int main() {
  scanf("%d", &n);
  int N = n;
  for (int i = 0; i < n; i++) {
    scanf("%d", &H[i]);
  }
  rotate(H, max_element(H, H + n), H + n);
  H[n] = H[0];
  for (int i = n - 1; i >= 0; --i) {
    R[i] = i + 1;
    while (R[i] < n && H[R[i]] < H[i]) {
      R[i] = R[R[i]];
    }
    if (R[i] < N && H[R[i]] == H[i]) {
      C[i] = C[R[i]] + 1;
      R[i] = R[R[i]];
    }
  }
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    ans += C[i];
    if (H[i] == H[0]) continue;
    L[i] = i - 1;
    while (L[i] > 0 && H[L[i]] <= H[i]) {
      L[i] = L[L[i]];
    }
    ans += 2;
    if (L[i] == 0 && R[i] == n) {
      ans--;
    }
  }
  printf("%I64d\n", ans);
  return 0;
}
