你**棕**了
by _C_language_ @ 2024-03-01 21:10:30
问题出在第 29 行,一旦数据中有 0,这个 if 循环就不会被执行;加上一行 `a[0].num=-1;` 就可以了
by houwz351 @ 2024-03-01 21:13:58
```cpp
#include <bits/stdc++.h>
#define int long long
using namespace std;
struct node
{
int num,id;
}a[50005],b[50005];
bool cmp(node x,node y)
{
if(x.num!=y.num) return x.num<y.num;
return x.id<y.id;
}
bool cmp1(node x,node y)
{
return x.id<y.id;
}
main()
{
ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
int t;
cin>>t;
a[0].num=-1;
while(t--){
memset(b,0,sizeof(b));
int n,cnt=0;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i].num,a[i].id=i;
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
if(a[i].num!=a[i-1].num) b[++cnt].num=a[i].num,b[cnt].id=a[i].id;
}
sort(b+1,b+1+cnt,cmp1);
for(int i=1;i<=cnt;i++) cout<<b[i].num<<" ";
cout<<"\n";
}
return 0;
}
```
by houwz351 @ 2024-03-01 21:14:38
才发现你已经调出来了(
by houwz351 @ 2024-03-01 21:17:17