10分求调
查看原帖
10分求调
1374427
Kamisato_Ayaka2楼主2025/1/26 13:20
#include<iostream>
using namespace std;
#define ll unsigned long long
ll x;
int n;
bool a[1000005];
int main(){
	cin>>n>>x;
	const ll maxx=(n-1)*(n-2)/2;
	int k=maxx-x;
	a[n]=a[n-1]=true;
	if(x>maxx){
		cout<<-1;
		return 0;
	}
	for(int i=1;i<=n-2;i++){
		if(k>=n-i-1){
			k-=n-i-1;a[i]=true;
		}
		if(k==0) break;
	}
	cout<<n<<" ";
	for(int i=1;i<=n-2;i++){
		if(!a[i]){
			cout<<i<<" ";
		}
	}
	cout<<n-1<<endl;
	for(int i=1;i<=n-2;i++){
		if(a[i]){
			cout<<i<<" ";
		}
	}
	return 0;
}
2025/1/26 13:20
加载中...