A是大水题
当且仅当n==2
的时候需要特判,除此之外从1
到n
输出即可(当然,第a
个仍然是b
)
因此,代码可以这么写:
#include<cstdio>
#include<iostream>
using namespace std;
int t,n,a,b;
int main(){
cin>>t;
while(t--){
scanf("%d%d%d",&n,&a,&b);
if(n==2&&a==2&&b==4){
cout<<"3 4 1 2"<<endl;
}else if(n==2&&a==1&&b==4){
cout<<"4 3 1 2"<<endl;
}else if(n==2&&a==3&&b==1){
cout<<"3 4 1 2"<<endl;
}else if(n==2&&a==4&&b==1){
cout<<"3 4 2 1"<<endl;
}else{
for(int i=1;i<a;i++){
if(i>=b) cout<<i+1<<' ';
else cout<<i<<' ';
}
cout<<b<<' ';
for(int i=a;i<2*n;i++){
if(i>=b) cout<<i+1<<' ';
else cout<<i<<' ';
}
cout<<endl;
}
}
return 0;
}