求助
查看原帖
求助
875806
liupan2010楼主2023/6/23 17:32

输出格式错误是啥。

我的方法是:随机选择。

#include<bits/stdc++.h>
using namespace std;
int n,arr[45005];
auto seed=std::chrono::system_clock::now().time_since_epoch().count();
std::mt19937 rnd(seed);
template<typename T> T rd(T l, T r) { return std::uniform_int_distribution<T>(l, r)(rnd); }
void solve(){
	shuffle(arr+1,arr+n+1,rnd);
	int pos=rd<int>(1,n),sum=0;
	for(int i=1;i<=pos;i++){
		sum+=arr[i];
	}
	if(__gcd(sum,n*(n+1)/2-sum)==1){
		return;
	}
	puts("Yes");
	for(int i=1;i<=pos;i++){
		cout<<arr[i]<<' ';
	}
	puts("");
	for(int i=pos+1;i<=n;i++){
		cout<<arr[i]<<' ';
	}
	exit(0);
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		arr[i]=i;
	}
	int test=1000;
	while(test--){
		solve();
	}
	puts("No");
	return 0;
}

2023/6/23 17:32
加载中...