WA大佬求助,玄关,急急急急急急
查看原帖
WA大佬求助,玄关,急急急急急急
1020566
prg_equal_depressed楼主2024/8/2 21:08
#include <iostream>
#include <set>
#include <algorithm>
#define _int long long
using namespace std;
_int t,n,x[100005],q[100005];
bool f;
set<_int> a;
int main(){
	cin>>t;
	while (t--){
		cin>>n;f=0;
		a.clear();
		for (_int i=1;i<=n;i++){
			a.insert(i);
		}
		for (_int i=1;i<=n/2;i++){
			cin>>x[i];
			if (a.find(x[i])==a.end()){
				f=1;break;
			}
			a.erase(x[i]);
		}
		if (f==1){
			cout<<"-1"<<endl;
			continue;
		}
		for (_int i=n/2;i>=1;i--){
			if (a.upper_bound(x[i])==a.begin()){
				f=1;break;
			}
			a.upper_bound(x[i])--;
			q[i]=*a.upper_bound(x[i]);
			a.erase(q[i]);
		}
		if (f==1){
			cout<<"-1"<<endl;
			continue;
		}
		for (_int i=1;i<=n/2;i++){
			cout<<q[i]<<" "<<x[i]<<" ";
		}
		if (t!=0) cout<<endl;
	}
}
2024/8/2 21:08
加载中...