A是大水题

当且仅当n==2的时候需要特判,除此之外从1n输出即可(当然,第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;
}