不刷不会知道这道题贱的地方。。。。
#include<iostream>
using namespace std;
const int maxn=1001111;
int dp[4][maxn];
int x,y;
void dpstart()
{
memset(dp,0,sizeof(dp));
for(int i=0;i<=1000111;i++)
{
dp[0][i]=i+1;
}
dp[1][0]=dp[0][1];
for(int i=1;i<=1000111;i++)
{
dp[1][i]=dp[0][dp[1][i-1]];
}
dp[2][0]=dp[1][1];
for(int i=1;i<=1000111;i++)
{
dp[2][i]=dp[1][dp[2][i-1]];
}
dp[3][0]=dp[2][1];
for(int i=1;i<=24;i++)
{
dp[3][i]=2*dp[3][i-1]+3;
}
return ;
}
int main()
{
dpstart();
while(cin>>x>>y)
{
cout<<dp[x][y]<<endl;
}
return 0;
}