int n; ull x; vector<ull> v; int main() { fastio; while(cin >> n) { v.clear(); for(int i = 0; i < n; ++i) { cin >> x; auto it = upper_bound(v.begin(), v.end(), x); int rank = i - (it - v.begin()) + 1; cout << rank << "\n"; v.insert(it, x); } } return 0; }
Worst case $O(N^2)$ 可以 $8.3$ 秒通過
想要 $O(N \cdot \log(N))$ 可以用 pbds 或是 treap 實作起來比較方便