摘自:ThXe
原文链接:https://blog.csdn.net/thexue/article/details/122063160
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define int long long
const int N = 200010;
int a[N],cnt[N];
void solve()
{
for(int i=0;i<N;i++)cnt[i]=0;
int n,x;cin>>n;
for(int i=0;i<n;i++)cin>>x,cnt[x]++;
int s=0;
priority_queue<int>q;
for(int i=0;i<=n;i++)
{
cout<<max(-1ll,s+cnt[i])<<' ';
while(cnt[i]--)q.push(i);
if(q.size())
{
s+=i-q.top();
q.pop();
}
else s=-1e18;
}
cout<<'\n';
}
signed main()
{
int T;cin>>T;
while(T--)solve();
}