bzoj 2761: [JLOI2011]不重复数字

时间:2023-12-17 19:16:50
 #include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define M 50008
using namespace std;
struct data
{
int b1,b2;
}a[M],c[M];
int T,n,b[M],cnt;
bool cmp(data a1,data a2)
{
if(a1.b1==a2.b1)
return a1.b2<a2.b2;
return a1.b1<a2.b1;
}
bool cmp1(data a1,data a2)
{
return a1.b2<a2.b2;
}
int main()
{
scanf("%d",&T);
for(;T--;)
{
memset(a,,sizeof(a));
memset(c,,sizeof(c));
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i].b1);
a[i].b2=i;
}
sort(a+,a+n+,cmp);
cnt=;
c[]=a[];
for(int i=;i<=n;i++)
if(a[i].b1!=a[i-].b1)
{
cnt++;
c[cnt]=a[i];
}
sort(c+,c+cnt+,cmp1);
for(int i=;i<cnt;i++)
printf("%d ",c[i].b1);
printf("%d",c[cnt].b1);
printf("\n");
}
return ;
}

排序去重。