#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000006;
int tab[MAXN], t[MAXN], c[MAXN], r[MAXN], l[MAXN];
int main() {
  int n, maxx = -1, nr = -1, ile = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%d", &tab[i]);
    if (tab[i] > maxx) {
      nr = i;
      maxx = tab[i];
    }
  }
  for (int i = 0; i < n; ++i) t[i] = tab[(i + nr) % n];
  t[n] = t[0];
  for (int i = n - 1; i >= 0; i--) {
    r[i] = i + 1;
    while (r[i] < n && t[i] > t[r[i]]) r[i] = r[r[i]];
    if (r[i] < n && t[i] == t[r[i]]) {
      c[i] = c[r[i]] + 1;
      r[i] = r[r[i]];
    }
  }
  for (int i = 0; i < n; ++i)
    if (i) {
      l[i] = i - 1;
      while (l[i] > 0 && t[i] >= t[l[i]]) l[i] = l[l[i]];
    }
  long long wyn = 0LL;
  for (int i = 0; i < n; ++i) wyn += c[i];
  for (int i = 0; i < n; ++i)
    if (t[i] < t[0]) {
      wyn += 2;
      if (l[i] == 0 && r[i] == n) wyn--;
    }
  printf("%I64d\n", wyn);
  return 0;
}
