RE 40分
#include<bits/stdc++.h>
using namespace std;
map<int,vector<int> >pr;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int T;
cin>>T;
while(T--){
int n,p;
cin>>n>>p;
if(p==2){
for(int i=1;i<=n;i++){
if(i%2==1) cout<<i<<" ";
}
for(int i=1;i<=n;i++){
if(i%2==0) cout<<i<<" ";
}
cout<<"\n";
continue;
}
for(int i=0;i<=p;i++) pr[i].clear();
for(int i=1;i<=n;i++) pr[i%p].push_back(i);
for(int i=0;i<p;i++){
int a=i,b=p-i;
while(!pr[a].empty()&&!pr[b].empty()){
cout<<pr[a].front()<<" "<<pr[b].front()<<" ";
pr[a].erase(pr[a].begin());
pr[b].erase(pr[b].begin());
}
if(pr[a].empty()){
while(!pr[b].empty()){
cout<<pr[b].front()<<" ";
pr[b].erase(pr[b].begin());
}
}
else if(pr[b].empty()){
while(!pr[a].empty()){
cout<<pr[a].front()<<" ";
pr[a].erase(pr[a].begin());
}
}
}
cout<<"\n";
}
return 0;
}
题目链接:Link