代码如下
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
int n[t+1],da[t+1];
long long x[t+1];
for(int i=1;i<=t;i++){
cin>>n[i]>>x[i];
}for(int i=1;i<=t;i++){
int a[n[i]+1]={0};
if(n[i]<=2){
da[i]=x[i];
}else{
int fl=x[i];
while(x[i]%2==0&&x[i]>=2){
x[i]/=2;
}if(x[i]==1){
a[1]=1;a[2]=1;
for(int j=3;j<=n[i];j++){
a[j]=a[j-1]*2;
}while(a[n[i]]<fl){
x[i]*=2;a[1]=x[i];a[2]=x[i];
for(int j=3;j<=n[i];j++){
a[j]=a[j-1]*2;
}
}
da[i]=a[n[i]];
}else{
a[1]=a[2]=x[i];
for(int j=3;j<=n[i];j++){
a[j]=a[j-1]*2;
}while(a[n[i]]<fl){
x[i]*=2;a[1]=x[i];a[2]=x[i];
for(int j=3;j<=n[i];j++){
a[j]=a[j-1]*2;
}
}
da[i]=a[n[i]];
}
}
}
for(int i=1;i<=t;i++){
cout<<da[i]<<endl;
}
return 0;
}``````