func_code_string: #include <bits/stdc++.h>   using namespace std;   #pragma GCC optimize( -Ofast )   #pragma GCC optimize( trapv )   #pragma GCC target(         sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx2,tune=native )   #pragma GCC optimize( -ffast-math )   #pragma GCC optimize( -funroll-loops )   #pragma GCC optimize( -funroll-all-loops,-fpeel-loops,-funswitch-loops )   const int N = 1e3 + 40;   const int MAXK = 12;   const long long int INF = 1000000000000000000;   const int RANDOM =       chrono::high_resolution_clock::now().time_since_epoch().count();   long long int expo_pow(long long int x, long long int y) {     if (y == 0) return 1;     y = y % ((1000000007) - 1);     x %= (1000000007);     if (y == 0) y = (1000000007) - 1;     long long int res = 1;     while (y) {       if (y & 1) res = (res * x) % (1000000007);       x = (x * x) % (1000000007);       y >>= 1;     }     return res;   }   long long int modInverse(long long int a, long long int m = (1000000007)) {     return expo_pow(a, m - 2);   }   void solve() {     int n;     cin >> n;     vector<vector<long long int>> cnt(n + 2);     map<int, int> ones;     map<int, int> t;     for (long long int i = (1); i < (n + 1); i++) {       int tp, w;       cin >> tp >> w;       if (w) ones[tp]++;       t[tp]++;     }     for (auto x : t) {       cnt[x.second].push_back(ones[x.first]);     }     priority_queue<pair<long long int, long long int>> pq;     long long int ans = 0;     long long int fo = 0;     set<long long int> second;     for (long long int i = (1); i < (n + 1); i++) {       if (1) second.insert(i);       for (long long int j = (0); j < (cnt[i].size()); j++) {         pq.push(make_pair(cnt[i][j], i));       }     }     while (second.size()) {       if (pq.empty()) break;       int x = pq.top().second;       auto it = second.upper_bound(x);       if (it == second.begin()) {         pq.pop();         continue;       }       it--;       ans += *it;       fo += min(*it, pq.top().first);       pq.pop();       second.erase(*it);     }     cout << ans <<     << fo <<   n ;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     int T = 1;     cin >> T;     while (T--) {       solve();     }   }   