각 라운드 승자가 새 번호를 받는 토너먼트에서 라운드 승리 확률이 p일 때, 모든 경기를 이겨 우승할 확률이 가장 높은 시작 번호를 모두 구한다.
보통7그래프트리DFS확률아직 제출이 없습니다시간 제한5초메모리 제한512 MB올해 LoL 토너먼트에는 참가자가 n명 있고, 1번부터 n번까지 번호가 붙어 있다. 당신은 Dota를 아주 잘하고 웃음이 많아서 참가하기로 했다.
이 대회의 진행 방식은 독특하다. 싱글 엘리미네이션이나 리그전 같은 흔한 방식 대신, 주최 측이 만든 규칙으로 우승자를 가린다.
대회는 n−1개의 라운드로 이루어지고, 마지막 라운드의 승자가 우승자다. 진행은 다음과 같다.
n−1개의 라운드가 모두 끝나면 참가자가 한 명만 남고, 그 번호는 2n−1번이다. 이 사람이 우승자다.
이 방식이 불공평하다는 것은 금방 알 수 있다. 그래도 대회 자체는 앞뒤가 맞는다. 자기가 나가는 라운드를 모두 이긴 참가자가 우승하고, 나머지 참가자는 정확히 한 명에게 한 번만 진다.
그래서 당신은 이 구조를 이용하기로 했다. 우승 확률이 가장 커지도록 1번부터 n번 중에서 처음 번호를 고르려고 한다. 어떤 번호를 골라야 하는가? 그런 번호가 여러 개일 수 있으니, 해당하는 번호를 모두 증가하는 순서로 출력한다.
한 라운드를 이길 확률은 상대가 누구든 p다.
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스의 첫째 줄에는 n과 p가 공백으로 구분되어 주어진다. 이어지는 n−1개의 줄은 대진을 나타낸다. 그중 i번째 줄에는 두 정수 ai와 bi가 공백으로 구분되어 주어진다.
제한
각 테스트 케이스마다 한 줄에, 우승 확률을 최대로 만드는 처음 번호를 증가하는 순서로 공백 하나씩으로 구분해 출력한다.