输出格式错误是啥。
我的方法是:随机选择。
#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;
}