#include<bits/stdc++.h>
using namespace std;
const int N=200005;
bool flag=1;
vector<int> f,fnum;
int lc[N];
int qk(vector<int> a,vector<int>anum,int n){
int cnt=0;
for(int i=1;i<n;i++){
if((f[i]!=f[i+1]&&f[i]!=2&&f[i+1]!=2)||(i!=1&&f[i-1]==2)){
lc[cnt]=i;
cnt++;
}else{
cnt++;
continue;
}
}
return cnt;
}
int main(){
int n,num;
cin>>n;
for(int i=1;i<=n;i++){
f.push_back(i);
fnum[i]=i;
}
while(1){
for(int i=1;i<=n;i++){
if(f[i]!=2){
flag=0;
break;
}
}
if(flag){
return 0;
}
num=qk(f,fnum,n);
for(int i=1;i<=num;i++){
cout<<fnum[lc[i]]<<" ";
f[lc[i]]=2;
fnum[lc[i]]=0;
}
cout<<endl;
flag=1;
}
return 0;
}
不知道为什么最后删除出错了QAQ 求大佬解答