#include<bits/stdc++.h>//rand代码,,不超时,,能过
using namespace std;
const int maxn=1e6;
int a[maxn],b[maxn];
int n;
int gcd(int x,int y)
{
if(y==0) return x;
return gcd(y,x%y);
}
int cal(int i)
{
int s=0;
if(i==1) {s=s+gcd(a[1],a[2]);}
else if(i==n){s=s+gcd(a[n-1],a[n]);}
else {s=s+gcd(a[i-1],a[i])+gcd(a[i],a[i+1]);}
return s;
}
int main()
{
srand(time(0));
int t,kase=1;
scanf("%d",&t);
while(t--)
{
int k;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++) a[i]=i;
int num=1;
while(1)//随机出合法序列
{
if(num==k) break;
int i=rand()%n+1,j=rand()%n+1;
int pre=cal(i)+cal(j);
swap(a[i],a[j]);
int last=cal(i)+cal(j);
if(num<k&&last-pre>0){num=num+last-pre;}
else if(num>k&&last-pre<0){num=num+last-pre;}
else swap(a[i],a[j]);
}
printf("Case #%d:",kase++);
for(int i=1;i<=n;i++) printf(" %d",a[i]);cout<<endl;
}
return 0;
}
#include<bits/stdc++.h> //随机生成测试数据
using namespace std;
int main()
{
//freopen("C:/Users/hzy/Desktop/11.txt","w",stdout);
srand(time(0));
int t;
scanf("%d",&t);
printf("%d\n",t);
while(t--)
{
int n,k;
n=rand()%10000+1;
while(1)
{
k=rand()%n+1;
printf("%d %d\n",k,n);
if(2*k<=n||n==1) break;
}
printf("%d %d\n",n,k);
}
return 0;
}
#include<bits/stdc++.h>//构造代码 思路:k,2k放一起.1来做间隔
using namespace std;
const int maxn=1e6;
int n,k,num;
int ans[maxn];
int gcd(int x,int y)
{
if(y==0) return x;
return gcd(y,x%y);
}
int check()
{
int s=0;
for(int i=1;i<num-1;i++)
{
s=s+gcd(ans[i],ans[i+1]);
}
return s;
}
int main()
{
//freopen("C:/Users/hzy/Desktop/11.txt","r",stdin);
int t,kase=1;
scanf("%d",&t);
while(t--)
{
num=1;
scanf("%d%d",&n,&k);
if(k==1)
{
for(int i=1;i<=n;i++) ans[num++]=i;
}
else if(k&1)
{
for(int i=2;i<=k;i++) ans[num++]=i;
ans[num++]=2*k;
ans[num++]=1;
for(int i=k+1;i<=n;i++) if(i!=2*k) ans[num++]=i;
}
else
{
for(int i=2;i<=n;i++)
{
if(i==k||i==2*k) continue;
ans[num++]=i;
}
ans[num++]=1;
ans[num++]=k;
ans[num++]=2*k;
}
// if(check()!=n-2+k) //检验答案
// {
// printf("%d %d %d %d\n",n,k,check(),n-2+k);
// for(int i=1;i<num;i++) printf("%d ",ans[i]);cout<<endl;
// }
printf("Case #%d:",kase++);
for(int i=1;i<num;i++) printf(" %d",ans[i]);cout<<endl;
}
return 0;
}