后四点正确,其它全错
查看原帖
后四点正确,其它全错
1271781
zhangchenyi_awa楼主2024/7/19 17:22

代码:

#include <bits/stdc++.h>
using namespace std;
int t;

struct INFO{
	long long a;
	int x;
	bool flag=1;
}a[50005];
bool cmp1(INFO a,INFO b){
	if(a.a!=b.a){
		return a.a<b.a;
	}
	return a.x<b.x;
}
bool cmp2(INFO a,INFO b){
	return a.x<b.x;
}
int main(){
	scanf("%d",&t);
	for(int i=1;i<=t;i++){
		int n;
		scanf("%d",&n);
		for(int j=1;j<=n;j++){
			//读入并记录当前位置 
			scanf("%lld",&a[j].a);
			a[j].x=j;
			a[j].flag=1;
		}
		sort(a+1,a+n+1,cmp1);//从小到大排序 
		for(int j=1;j<=n;j++){
			//判断重复 
			if(a[j].a==a[j-1].a){
				a[j].flag=0;//标记 
			}
		}
		sort(a+1,a+n+1,cmp2);//回归初始位置 
		for(int j=1;j<=n;j++){
			//判断标记 
			if(a[j].flag){
				printf("%lld ",a[j].a);
			}
		}
		printf("\n");
	}
}

悬赏关注

2024/7/19 17:22
加载中...