#include<bits/stdc++.h>
const int N=1e5+5;
int T,n,a[N];
inline int dtz(int n,int *a)
{
int p[N]={0};
for(int i=1;i<=n;i++) p[i]=a[i];
std::sort(p+1,p+n+1);
int q=std::unique(p+1,p+n+1)-p-1;
for(int i=1;i<=n;i++) a[i]=std::lower_bound(p+1,p+q+1,a[i])-p;
}
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
dtz(n,a);
for(int i=1;i<=n;i++) printf("%d%c",a[i],i==n?'\n':' ');
}
return 0;
}
~我就不知道了我为什么离散化都能 RE~
回复请 at 我。