for _ in range(int(input())):
n=int(input())
l=list(map(int,input().split()))
d={}
maxi=-10000
for i in l:
if i in d:
d[i]+=1
maxi=max(maxi,d[i])
else:
d[i]=1
maxi=max(maxi,d[i])
if(maxi==n):
print(0)
else:
cnt=1
while(maxi<=n):
if(maxi+maxi>=n):
cnt+=(n-maxi)
break
cnt+=maxi
maxi*=2
cnt+=1
print(cnt)
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long int t;
cin >> t;
while (t--)
{
long long int n;
cin >> n;
vector<long long int> v(n);
map<long long int, long long int> m;
for (long long int i = 0; i < n; i++)
{
cin >> v[i];
m[v[i]]++;
}
long long int val;
long long int maximum = INT_MIN;
for (auto it : m)
{
if (it.second >= maximum)
{
val=it.first;
maximum = it.second;
}
}
long long int count = 0;
while (1)
{
if(m[val] == n)
{
break;
}
count++;
long long int k = n - m[val];
long long int l = m[val];
if (k >= l)
{
m[val]+=l;
k=k-l;
count+=l;
}
else{
m[val]+=k;
count+=k;
break;
k=0;
}
}
cout << count << endl;
}
return 0;
}
1629D - Peculiar Movie Preferences | 1629E - Grid Xor |
1629F1 - Game on Sum (Easy Version) | 2148. Count Elements With Strictly Smaller and Greater Elements |
2149. Rearrange Array Elements by Sign | 2150. Find All Lonely Numbers in the Array |
2151. Maximum Good People Based on Statements | 2144. Minimum Cost of Buying Candies With Discount |
Non empty subsets | 1630A - And Matching |
1630B - Range and Partition | 1630C - Paint the Middle |
1630D - Flipping Range | 1328A - Divisibility Problem |
339A - Helpful Maths | 4A - Watermelon |
476A - Dreamoon and Stairs | 1409A - Yet Another Two Integers Problem |
977A - Wrong Subtraction | 263A - Beautiful Matrix |
180C - Letter | 151A - Soft Drinking |
1352A - Sum of Round Numbers | 281A - Word Capitalization |
1646A - Square Counting | 266A - Stones on the Table |
61A - Ultra-Fast Mathematician | 148A - Insomnia cure |
1650A - Deletions of Two Adjacent Letters | 1512A - Spy Detected |