https://www.luogu.com.cn/record/101666076
#include<bits/stdc++.h>
using namespace std;
int T,n,p[100005];
long long a,b;
long long ans,aans,bans;
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%lld%lld",&n,&a,&b);
aans=0;ans=0;
int mid=n/2;
for(int i=1;i<=mid;i++){
ans+=i;
p[i]=i;
}
aans=ans;
for(int i=mid+1;i<=n;i++){
ans+=i;
p[i]=i;
}
bans=ans-aans;
if(ans<a+b||bans<b||bans<a){printf("-1\n");continue;}
int k=n-1,nw=1;
while(aans<a){
if(a-aans<=k){
swap(p[nw],p[nw-aans+a]);
aans=a;
}
else {
swap(p[nw],p[nw+k]);
nw++;
aans+=k;
k-=2;
}
}
for(int i=1;i<=n;i++)printf("%d ",p[i]);
printf("\n");
}
return 0;
}
RT. thx qwq