//活动地址: 牛客春招刷题训练营 - 编程打卡活动 #include <iostream> using namespace std; int main() { int n,k; cin>>n>>k; // 先考虑特殊情况 if(n==1){ cout<<"1"<<"\n"; } // 然后这种特殊情况 比如 n=7 k=4 -> 4 1 5 2 6 3 7 else if(n<2*k) { for(int i=1;i<k;i++){ cout<<n-k+i<<" "<<i<<" "; } cout<<n; } else{ // n = 6 k = 3 -> 4 1 5 2 6 3 for(int i=1;i<=k;i++){ cout<<n-k+i<<" "<<i<<" "; } for(int i=k+1;i<=n-k;i++) cout<<i<<" "; } // 因为任何两个好元素不能相邻 所以这个方法不行 // for(int i=1;i<=k;i++){ // cout<<n-k+i<<" "; // } // for(int i=1;i<=n-k;i++)cout<<i<<" "; } // 活动地址: 牛客春招刷题训练营 - 编程打卡活动 // if(n==1){ // // 特殊情况 // cout<<1; // } // // 即当n为奇数 且 k=n/2 // else if (k*2>n) { // for(int i=1;i<k;i++){ // cout<<n-k+i<<" "<<i<<" "; // } // cout<<n; // } // else{ // for(int i=1;i<=k;i++){ // cout<<n-k+i<<" "<<i<<" "; // } // for(int i=k+1;i<=n-k;i++){ // cout<<i<<" "; // } // }