#include #include #include using namespace std; int k; bool is[2400000]; void update(int kam){ kam += k; is[kam] = 1; kam /= 2; while(kam){ is[kam] = is[2*kam]&is[2*kam+1]; kam /= 2; } } bool quer(int l, int r){ bool ans = 1; for(l+=k,r+=k; l> n; k = 1; while(k <= n) k*= 2; k--; pair terr[n]; for(int i = 0; i < n; i++){ int c; cin >> c; terr[i] = {c,i}; } sort(terr, terr+n); int m = terr[0].first; long long sum = 0; for(int i = 0; i < n-1; i++){ int a = terr[i].second; int b = terr[i+1].second; if(terr[i].first == terr[i+1].first) if(quer(a+1+1, b-1+1)) sum += b-a-1; update(a+1); } cout << sum << endl; return 0; }