题意
Reve 有两个整数n和k。 对于一个长度为n的排列p,我们令c 是一个长度为n − k + 1 的数组,其中
Ci = m a x ( P i , . . . P i + k − 1 ) + m i n ( P i , . . . , P i + k − 1 )
定义一个排列p的代价是c中的最大值。 Koxia 希望你构造一个排列使得其代价尽可能小。
思路
如果k==1,那么数组c就是1~n,如果k!=1,那么就让1和n放在一起,就是说让他们的最大值始终为(1+n)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
if(k==1)
{
for(int i=1;i<=n;i++)
{
cout<<i<<" ";
}
cout<<endl;
}
else
{
for(int i=1;i<=n/2;i++)
{
cout<<n-i+1<<" "<<i<<" ";
}
if(n&1)cout<<n/2+1<<endl;
}
}
return 0;
}