本地运行到第二个数据挂了,IDE也挂了,但是实在找不出错误
有人愿意帮助我吗?
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#include<queue>
#include<map>
#include<set>
//#define int long long
using namespace std;
typedef long long ll;
const int N=1e3+5,M=1e5+5,p=1e9+7,inf=0x3f;
int read(){
char c=getchar();int f=1,x=0;
while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
while(isdigit(c)){x=x*10+c-48;c=getchar();}
return x*f;
}
int t,n,qwq,a[N];
bool vis[N];
priority_queue<int ,vector<int> ,greater<int> > q;
signed main(){
t=read();
while(t--){
n=read();
if(n==1){puts("-1");continue;}
for(int i=1;i<=n;++i)q.push(i);
for(int i=1;i<=n;++i){
a[i]=read();
}
for(int i=1;i<=n;++i){
if(q.top()==a[i]){
qwq=q.top(),q.pop();
printf("%d ",q.top());
q.pop(),q.push(qwq);
}
else printf("%d ",q.top()),q.pop();
}
// cout<<1<<endl;
puts("");
while(!q.empty())q.pop();
}
return 0;
}
输入数据
4
3
1 2 3
5
2 3 4 5 1
4
2 3 1 4
1
1
提前感谢大佬