小球下落

 

#include<cstdio>
#include<iostream>
using namespace std;
#include<cstring>
int s[1 << 20];
int main(void)
{
    int t;
    while (cin >> t && t != -1)
    {
        int D, I;
        while (t--)
        {
            cin >> D >> I;
            int k = 1;
            for(int i = 0;i<D-1;i++)//与前面的球无关,只与第几个球有关,偶数向右,奇数向左
            {
                if (I % 2) { k = 2 * k; I = (I + 1) / 2; }
                else { k = 2 * k + 1; I = I / 2; }
            }
            printf("%d\n", k );
        }
    }
    return 0;
}

 

posted @ 2021-02-06 20:43  loliconsk  阅读(56)  评论(0)    收藏  举报