트리
면접 대비시간 제한1초메모리 제한1024 MB
무한 이진 트리에서 왼쪽과 오른쪽 자식으로 내려갈 때마다 색이 1씩 바뀌는 규칙으로 부분트리를 칠하고, 루트 경로로 주어진 정점의 현재 색을 구하는 문제입니다.
문제
무한 이진 트리가 주어진다. 트리에는 루트가 있고, 무한히 많은 정점이 있다. 각 정점에는 왼쪽 자식과 오른쪽 자식이 있으며, 루트를 제외한 모든 정점에는 부모가 하나 있다.
각 정점은 개의 색 중 하나로 칠해지거나, 색이 없는 상태일 수 있다. 처음에는 모든 정점이 색이 없다.
두 종류의 쿼리를 처리해야 한다.
color(, ): 정점 를 색 로 칠한 뒤, 왼쪽 자식 에 대해color(, )를, 오른쪽 자식 에 대해color(, )를 호출한다. 이 연산은 정점 의 부분 트리 전체(무한히 많은 정점)를 다시 칠한다. 여기서 는 나머지 연산이다. 이미 칠해진 정점이라도 색은 새 색으로 바뀐다.- 정점이 주어지면 그 정점의 현재 색을 출력한다.
입력
첫 줄에 쿼리 개수 와 색의 개수 가 주어진다 (, ). 이어서 개의 쿼리가 주어지며, 각 쿼리는 정수 로 시작한다.
이면 다음 줄에 칠할 색 ()가 주어진다. 그 다음 줄에는 루트에서 정점 까지의 경로를 나타내는 빈 문자열이 아닌 문자열 가 주어진다. 'L'은 왼쪽 자식으로, 'R'은 오른쪽 자식으로 이동함을 뜻한다.
이면 다음 줄에 같은 형식의 경로 문자열 가 주어지며, 이 경로가 가리키는 정점의 색을 출력해야 한다.
모든 쿼리의 경로 길이 합은 을 넘지 않는다.
출력
두 번째 종류의 쿼리마다 해당 정점의 색을 한 줄에 하나씩 출력한다. 정점에 색이 없으면 을 출력한다.