하이퍼큐브
시간 제한0.2초메모리 제한1024 MB
한 비트만 다른 라벨을 잇는 N-하이퍼큐브에서 M의 최대 선행 노드와 최소 후행 노드를 구하고, 길이 K인 경로의 개수를 센다.
문제
N-하이퍼큐브는 0부터 까지의 수가 붙은 개의 노드로 이루어진 방향 비순환 그래프이다. 노드 에서 노드 로 가는 간선이 존재할 필요충분조건은 이면서 인 음이 아닌 정수 가 존재하는 것이다. 여기서 는 비트 XOR 연산이다.
양의 정수 , , 가 주어졌을 때 다음 세 가지를 계산하라.
- N-하이퍼큐브에 속한 노드 중 에서 으로 가는 간선이 있는 노드 의 최댓값.
- N-하이퍼큐브에 속한 노드 중 에서 로 가는 간선이 있는 노드 의 최솟값.
- N-하이퍼큐브에서 찾을 수 있는 길이 인 경로(간선이 개인 경로)의 개수. 이 수는 매우 클 수 있으므로 100003으로 나눈 나머지를 구하라.
입력
첫째 줄에 세 수 , , 가 공백 하나를 사이에 두고 주어진다.
출력
첫째 줄에 1번 문제의 답을, 둘째 줄에 2번 문제의 답을, 셋째 줄에 3번 문제의 답을 출력한다.
제한
- 주어지는 에 대해 노드 에서 나가는 간선과 노드 으로 들어오는 간선이 각각 하나 이상 존재한다.
- 3번 문제의 답은 100003으로 나눈 나머지로 구해야 한다.
- 는 비트 XOR 연산이다.