赛时写的代码,到现在也调不出来,好心人求帮助。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,p;
cin>>n>>p;
if(p==2)
{
for(int i=2;i<=n;i+=2) cout<<i<<" ";
for(int i=1;i<=n;i+=2) cout<<i<<" ";
cout<<endl;
}
else if(p==3)
{
for(int i=3;i<=n;i+=3) cout<<i<<" ";
for(int i=1;i<=n;i++)
{
if(i%3==0) continue;
cout<<i<<" ";
}
cout<<endl;
}
else
{
if(n==1)
{
cout<<1<<endl;
return 0;
}
for(int i=p;i<=n;i+=p) cout<<i<<" ";
int nx=n;
n=n-n%3;
for(int i=n;i<=nx;i++)
{
if(i%p!=0) cout<<i<<" ";
}
for(int i=1;i<=n/2;i++)
{
if(i%p==0) continue;
if(p-i!=i&&n-i>0&&(n-i)%p!=0) cout<<i<<" "<<n-i<<" ";
else cout<<i<<" ";
}
if(n&1) cout<<n/2+1;
cout<<endl;
}
}
return 0;
}
等拿到2、3性质点其他的全wa,else里面的写挂了