赛时测试
#include <bits/stdc++.h>
using namespace std;
int t;
int main(){
cin >> t;
for(int i = 1; i <= t; i++){
int n,p;
cin >> n >> p;
if(p == 2){
for(int j = 2; j <= n; j += 2)
cout << j << " ";
for(int j = 1; j <= n; j += 2)
cout << j << " ";
cout << "\n";
continue;
} else if(p == 3){
for(int j = 3; j <= n; j += 3)
cout << j << " ";
for(int j = 1; j <= n; ){
cout << j << " ";
if(j % 3 == 2){
j += 2;
} else {
j++;
}
}
cout << "\n";
continue;
} else if(n*2-1 < p){
for(int j = 1; j <= n; j++)
cout << j << " ";
cout << "\n";
continue;
} else if(n*2-1 == p){
cout << n << " " << n-1 << " ";
for(int j = 1; j <= n-2; j++)
cout << j << " ";
cout << "\n";
continue;
} else if(n == 1){
cout << 1 << "\n";
} else if(n <= p){
if(n == p){
cout << n << " ";
int l = 1,r = p-1;
while(l <= r){
if(l == r){
cout << l << " ";
break;
}
cout << l << " " << r << " ";
l++;
r--;
}
} else {
int l = p-n,r = n;
for(int j = 1; j < l; j++)
cout << j << " ";
while(l <= r){
if(l == r){
cout << l << " ";
break;
}
cout << l << " " << r << " ";
l++;
r--;
}
}
cout << "\n";
} else {
for(int j = p; j <= n; j += p)
cout << j << " ";
int l = 1,r = p-1;
while(l <= r){
if(l == r){
for(int j = l; j <= n; j += p)
cout << j << " ";
break;
}
for(int j = l; j <= n; ){
cout << j << " ";
if(j % p == l){
j += (r-l);
} else {
j += p;
j -= (r-l);
}
}
l++;
r--;
}
cout << "\n";
}
}
return 0;
}