고수 2
시간 제한2초메모리 제한1024 MB
N명의 선수로 이루어진 토너먼트가 주어질 때, 크기가 정확히 1 + floor(log2 N)인 추이적 부분 토너먼트(체인)를 찾는다.
문제
Ho는 태보라는 무술의 고수다. 그녀는 태보 학교를 운영하고 있고, 학교에는 명의 학생이 있다. 태보 학교 내부의 경쟁을 키우기 위해, 그녀는 모든 학생에게 순위를 부여하는 태보 랭킹 웹사이트를 만들려고 한다. 적절한 순위를 정하기 위해, Ho는 개의 모든 학생 쌍이 서로 태보 대결을 하도록 했다. 태보 대결에서는 정확히 한 명이 이기고 다른 한 명이 진다. 태보 대결의 결과는 그리 단순하지 않을 수 있다. 예를 들어 학생 A가 B를 이기고, B가 C를 이기고, C가 A를 이기는 경우가 있을 수 있다. 이런 상황에서는 세 학생 중 확실한 승자가 없으므로 순위를 매기기가 꽤 복잡해진다.
이 문제를 해결하기 위해, Ho는 표준 랭킹 체인을 찾고 그 체인을 기준으로 다른 학생들의 순위를 매길 것이다. 길이 의 표준 랭킹 체인은 명의 서로 다른 학생 의 수열로서, 일 때 그리고 그때만 가 를 이긴다. 다시 말해, 은 체인에 있는 다른 모든 학생을 이길 수 있고, 는 을 제외한 체인의 다른 모든 학생을 이길 수 있고, 은 를 제외한 체인의 다른 모든 학생을 이길 수 있으며, 이런 식으로 이어져 는 체인에 있는 어떤 학생도 이길 수 없다. Ho의 웹사이트는 이런 체인을 기준으로 다른 학생들의 순위를 매기므로, 순위를 정하기가 더 쉬워진다.
Ho는 태보 고수일 뿐만 아니라 수학 천재이기도 하다. Ho는 어떤 태보 대결 결과에 대해서도 길이 의 표준 랭킹 체인을 찾을 수 있다는 것을 알고 있다. 여기서 은 밑이 2인 로그다. 다시 말해, 인 모든 에 대해, Ho는 그런 길이의 표준 랭킹 체인을 찾을 수 있다.
Ho는 컴퓨터 프로그래밍도 매우 잘하지만 조금 게으르기 때문에, 이 일을 당신에게 맡긴다. 당신은 길이가 정확히 인 표준 랭킹 체인을 찾아야 한다.
입력
첫 번째 줄에 테스트 케이스의 수 가 주어진다. 각 테스트 케이스마다 다음 입력이 주어진다.
첫 번째 줄에 학생 수 이 주어진다.
다음 개의 줄 중 번째 줄에 W, L, -로 이루어진 길이 의 문자열 가 주어진다. 의 번째 문자를 라고 하자. 는 다음과 같이 주어진다.
-
이면
- -
학생 가 학생 를 이겼으면
W -
학생 가 학생 를 이겼으면
L -
-
-
모든 테스트 케이스에 대한 의 합은 을 넘지 않는다.
-
-() -
이면
W또는L이다. () -
W이면L이다. () -
L이면W이다. ()
출력
각 테스트 케이스마다 정확히 개의 정수를 한 줄에 출력한다. 이 정수들은 표준 랭킹 체인에 속한 학생들을 실력 순서대로 나타낸다. 이러한 체인은 모든 가능한 입력에 대해 존재한다는 것을 증명할 수 있다.