Em đang cố dùng một data structure mà truy cập một giá trị của nó chỉ mất log(n) và tính toán cái vị trí (index) của nó (O(logn) hoặc O(1) time) trong cái data structure đó.
Em đã làm như này nhưng bị quá thời gian (O(n^2) do ::distance mất đến O(n)
multiset <long long> st;
loop -> (st.insert(number); ...
multiset <long long> :: iterator it;
it = lower_bound( value)
cout << distance (st.begin(), it);
Mọi người chỉ cho em cách làm như này nhưng thời gian chỉ mất n log n không ạ? Em cảm ơn rất nhiều ạ