#include <bits/stdc++.h> using namespace std; #define ll long long int main() {     ios::sync_with_stdio(0);     cin.tie(0);     int t;     cin >> t;     while(t--) {         int n;         cin >> n;         vector < pair < ll, ll >> v1;         vector<ll> v2;         for(int i = 0; i < n; i++){             int a, b;             cin >> a >> b;             v1.push_back(make_pair(a, b));             v2.push_back(b);         }         sort(v1.begin(), v1.end());         sort(v2.begin(), v2.end());         ll ans = 0;         for(int i = 0; i < v1.size(); i++) {             int p = v1[i].second;             ll idx = lower_bound(v2.begin(), v2.end(), p) - v2.begin();             v2.erase(v2.begin() + idx);             ans += idx;         }         cout << ans << '\n';     } }


이거 erase가 O(n)이라서 O(n^2) 되는 거 아닌가요? 시간초과 안 나는 이유를 잘 모르겠습니다


https://codeforces.com/contest/1915/problem/F