第四点错了
#include<bits/stdc++.h>
using namespace std;
long long call(long long idx)
{
long long l=0,r=1125899906842623,val=0;
while(l<r)
{
long long si=(r-l+1)/4;
long long b1=l,b2=l+si,b3=l+si*2,b4=l+si*3;
long long e1=l+si-1,e2=l+si*2-1,e3=l+si*3-1,e4=r;
if(idx<=e1&&idx>=b1)
{
l=b1;
r=e1;
val+=0;
continue;
}
if(idx<=e2&&idx>=b2)
{
l=b2;
r=e2;
val+=1;
continue;
}
if(idx<=e3&&idx>=b3)
{
l=b3;
r=e3;
val+=3;
continue;
}
if(idx<=e4&&idx>=b4)
{
l=b4;
r=e4;
val+=4;
continue;
}
}
return val;
}
int n;
int main()
{
cin>>n;
while(n--)
{
long long idx;
cin>>idx;
cout<<call(idx)<<endl;
}
return 0;
}