트리에서 A에서 출발한 산책자가 매번 이웃을 균등한 확률로 골라 B나 C에 도착할 때까지 이동할 때, B를 먼저 만날 확률을 구한다.
보통6확률그래프트리수학면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MBNlogonia의 한 도시에는 로터리 N개와 거리 N−1개가 있다. 거리는 각각 서로 다른 두 로터리를 잇고, 이 거리만 이용해도 어떤 로터리에서 다른 어떤 로터리로든 갈 수 있다.
도시에 호텔은 둘뿐이다. 싼 호텔은 로터리 B에, 비싼 호텔은 로터리 C에 있다. 관광객 한 명이 친구의 생일을 축하하러 이 도시에 왔고, 파티는 로터리 A에 있는 클럽에서 열린다. 두 호텔 중 어느 쪽도 예약하지 않았고 밤 공기가 좋아서, 관광객은 파티가 끝난 뒤 거리와 로터리를 걸어 다니다가 처음 발견한 호텔에 묵기로 했다.
계획은 생각보다 어려워졌다. 도시를 모르고 술도 좀 과하게 마셔서 모든 거리가 똑같아 보이기 때문이다. 그래서 관광객은 이렇게 걷는다. 로터리에 도착하면 그 로터리에서 나가는 거리 중 하나를 모두 같은 확률로 고르고, 고른 거리로 다른 로터리까지 이동한다. 호텔이 있는 로터리에 도착하면 걷기를 멈춘다. 거리를 구별하지 못하니 방금 걸어 들어온 거리를 다시 고르기도 한다.
도로망, 파티가 열리는 로터리 A, 싼 호텔이 있는 로터리 B, 비싼 호텔이 있는 로터리 C가 주어질 때 관광객이 비싼 호텔보다 싼 호텔에 먼저 도착할 확률을 구하는 프로그램을 작성하라.
입력은 테스트 케이스 여러 개로 이루어지고 파일 끝에서 끝난다. 각 테스트 케이스의 첫 줄에는 정수 N, A, B, C가 주어진다. 차례로 도로망의 로터리 수, 생일 파티가 열리는 로터리, 싼 호텔이 있는 로터리, 비싼 호텔이 있는 로터리다. 이어지는 N−1개 줄에는 각각 정수 X와 Y가 주어지고, 로터리 X와 로터리 Y를 잇는 거리가 있다는 뜻이다.
제약
테스트 케이스마다 한 줄에 관광객이 비싼 호텔보다 싼 호텔에 먼저 도착할 확률을 소수점 여섯째 자리까지 반올림해 출력한다. 여섯 자리를 모두 채워서 쓴다. 확률이 0이면 0.000000, 1이면 1.000000이다.