#include using namespace std; #define FOR(i, b, e) for(int i = (b); i < (e); i++) #define PB push_back #define X first #define Y second #define TRAV(x, v) for(auto &x: v) #define SZ(x) ((int)x.size()) typedef long long ll; typedef pair ii; typedef vector vi; constexpr int INF = 0x3f3f3f3f; int licz(vi vec) { int n = SZ(vec), ret = 0; vector stosik = {{INF, -1}}; FOR(i, 0, n) { while(stosik.back().X < vec[i]) stosik.pop_back(); if(stosik.back().X == vec[i]) ret += i - stosik.back().Y - 1; stosik.PB({vec[i], i}); } return ret; } void solve() { int n; cin >> n; vi vec(n); TRAV(x, vec) cin >> x; cout << licz(vec) << '\n'; } int main() { ios::sync_with_stdio(0); cin.tie(0); solve(); return 0; }