눈싸움

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

땅에 눈이 두껍게 쌓이면 눈을 뭉쳐 눈덩이를 만들어 서로에게 던지는 눈싸움을 즐길 수 있다.

인원수가 같은 두 팀 A와 B 사이에 눈싸움이 벌어졌다. 해가 지기 전에 승부를 가리기 위해 두 팀은 결투 방식으로 승패를 정하기로 했다.

각 사람은 정확히 한 번 눈덩이를 던지며, 상대 팀의 한 사람을 목표로 삼는다. 던지는 순서는 결투가 시작되기 전에 $a_1, b_1, a_2, b_2, \dots$ 로 고정된다. 여기서 $a_i$ 는 A 팀의 $i$ 번째 사람, $b_i$ 는 B 팀의 $i$ 번째 사람이며, 결투는 $a_1$ 의 투척으로 시작된다.

눈덩이에 맞은 사람은 결투에서 탈락한다. 자기 차례가 되었지만 이미 탈락한 사람은 차례를 건너뛰고, 고정된 순서에서 아직 탈락하지 않은 다음 사람이 던진다. 예를 들어 $a_1$ 이 $b_1$ 을 맞혀 탈락시키면 다음으로 던지는 사람은 $a_2$ 이다. 각 사람은 최대 한 번만 던진다.

모든 차례가 끝났을 때, 남은 인원이 더 많은 팀이 이긴다. 두 팀의 남은 인원이 같으면 무승부이다.

모든 참가자는 각 사람이 던진 눈덩이를 명중시킬 확률을 알고 있다(이 확률은 목표가 누구든 동일하다). 각 사람은 자기 팀이 이길 확률이 가장 커지도록 목표를 고른다. 만약 자기 팀이 이길 확률이 가장 큰 목표가 여러 명이라면, 그중 상대 팀이 이길 확률을 가장 작게 만드는 목표를 고른다.

모두가 최적으로 행동한다고 할 때, A 팀이 이길 확률, B 팀이 이길 확률, 그리고 무승부가 될 확률을 구하여라.

입력

첫 번째 줄에 데이터 집합의 개수 $K$ 가 주어진다. 각 데이터 집합은 다음과 같은 형식이다.

  • 첫 줄에 각 팀의 인원수 $N$ 이 주어진다 ($2 \le N \le 8$).
  • 다음 줄에 $N$ 개의 실수가 주어진다. $i$ 번째 값은 A 팀의 $i$ 번째 사람이 명중시킬 확률이다.
  • 그다음 줄에 $N$ 개의 실수가 주어진다. $i$ 번째 값은 B 팀의 $i$ 번째 사람이 명중시킬 확률이다.

모든 확률 $p$ 는 $0 \le p \le 1$ 을 만족하며, 소수점 아래 두 자리로 주어진다.

출력

각 데이터 집합마다 먼저 Data Set x: 를 한 줄에 출력한다. 여기서 $x$ 는 1부터 시작하는 데이터 집합 번호이다. 다음 줄에는 A 팀이 이길 확률, B 팀이 이길 확률, 무승부가 될 확률을 한 칸의 공백으로 구분하여 출력한다. 각 확률은 소수점 아래 두 자리까지 출력한다. 연속한 두 데이터 집합 사이에는 빈 줄을 하나 출력한다(마지막 데이터 집합 뒤에는 빈 줄을 두지 않는다).