소어그래프
시간 제한1초메모리 제한1024 MB
N이 10^18까지 주어질 때, 각 정점 i에서 i⊕t와 (i⊕t)+1로 향하는 간선이 있는 방향 그래프에서 x에서 y로 가는 최소 간선 수를 구한다.
문제
정점의 개수가 인 소어그래프(XOR Graph)는 다음과 같이 정의된다.
- 소어그래프는 부터 까지의 번호가 붙은 개의 정점을 가진다.
- 각 정점 에 대해, 정점 에서 정점 와 정점 로 가는 방향 간선이 존재한다.
- 단, 간선을 통해 이동하려는 도착 정점의 번호가 을 초과하는 경우, 해당 간선은 존재하지 않는다.
여기서 기호는 Bitwise XOR을 나타낸다.
정점의 개수 , 시작 정점 , 도착 정점 , 그리고 음이 아닌 정수 가 주어질 때, 정점 에서 정점 로 이동하기 위해 지나야 하는 간선의 최소 개수를 구하는 프로그램을 작성하라.
입력
첫째 줄에 정수 , , , 가 공백으로 구분되어 주어진다. (; ; ; )
출력
정점 에서 정점 로 이동하기 위해 지나야 하는 간선의 최소 개수를 출력한다. 만약 정점 에서 정점 로 가는 경로가 존재하지 않는다면 을 출력한다.