완벽한 삼중항
시간 제한2초메모리 제한1024 MB
n이 최대 1e16일 때, 사용되지 않은 XOR이 0인 사전순 최소 세 수를 차례로 붙여 만든 수열의 n번째 원소를 구합니다.
문제
양의 정수로 이루어진 무한 수열 를 다음 단계를 반복하여 만든다.
-
다음 조건을 만족하는 양의 정수 세 수 중 사전순으로 가장 작은 것을 찾는다.
- 이다. 여기서 는 비트 단위 XOR 연산을 뜻한다.
- , , 는 모두 에 없다.
세 수 은 수열 이 보다 사전순으로 작을 때 보다 작다.
-
, , 를 이 순서대로 의 뒤에 붙인다.
-
1번 단계로 돌아간다.
정수 이 주어진다. 의 번째 원소를 구하라.
이 문제는 개의 독립적인 테스트 케이스에 답해야 한다.
수열 가 수열 보다 사전순으로 작다는 것은, 두 수열이 처음으로 달라지는 위치에서 의 원소가 의 대응하는 원소보다 작다는 뜻이다.
입력
첫 번째 줄에 테스트 케이스의 개수 ()가 주어진다.
다음 개의 줄에는 각각 정수 ()이 하나씩 주어진다. 구하려는 원소의 위치이다.
출력
각 테스트 케이스마다 답을 한 줄에 출력한다.
힌트
수열 의 처음 원소는 이다.