돼지들 몰아내기

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

문제

소들은 돼지들을 땅에서 몰아내기 위해 무작위로 움직이는 악취 폭탄을 만들었다. 돼지 문명은 $1$번부터 $N$번까지 번호가 매겨진 $N$개의 도시로 이루어져 있으며, 이 도시들은 $M$개의 양방향 도로로 연결되어 있다. 각 도로는 서로 다른 두 도시를 잇고, $1$번 도시는 반드시 다른 도시와 적어도 하나의 도로로 연결되어 있다.

악취 폭탄은 $1$번 도시에 놓인다. 매 시각(가장 첫 시각을 포함한다)마다, 어떤 도시에 있는 폭탄은 다음 두 가지 중 정확히 하나를 한다.

  • 확률 $\frac{P}{Q}$로 폭탄이 터져서 현재 있는 도시를 오염시키고, 과정이 끝난다.
  • 그렇지 않으면(확률 $1 - \frac{P}{Q}$) 폭탄은 터지지 않는다. 이때 폭탄은 현재 도시에서 나가는 도로 중 하나를 균일한 확률로 무작위로 골라, 그 도로를 따라 이웃 도시로 이동한다. 한 도시에서 나가는 모든 도로는 선택될 확률이 같다.

폭탄이 무작위로 돌아다니기 때문에, 소들은 각 도시에 대해 폭탄이 결국 그 도시에서 터질(즉 그 도시를 오염시킬) 확률을 알고 싶어 한다.

예를 들어, 도시가 두 개뿐이고 하나의 도로로 연결되어 있으며, $1$번 도시에서 출발한 폭탄이 도시에 들어갈 때마다 확률 $\frac{1}{2}$로 터진다고 하자.

1--2

폭탄이 지나가는 도시들의 순서로 각 경로를 나타내면(마지막에 적힌 도시에서 폭탄이 터진다), 가능한 경로는 다음과 같다.

1
1-2
1-2-1
1-2-1-2
1-2-1-2-1
...

폭탄이 $1$번 도시에서 터지는 경우는 지나간 도시의 개수가 홀수인 경로들(1; 1-2-1; 1-2-1-2-1; 그리고 그 이후)뿐이다. $k$개의 도시를 지나는 경로가 일어날 확률은 $\left(\frac{1}{2}\right)^k$이다. 처음 $k-1$개의 도시에서는 매번 터지지 않아야 하고(각각 확률 $1-\frac{1}{2}=\frac{1}{2}$), $k$번째 도시에서 터져야 하기(확률 $\frac{1}{2}$) 때문이다. 홀수 번째 항들을 모두 더하면 $1$번 도시에서 터질 확률을 얻는다.

$$\frac{1}{2} + \left(\frac{1}{2}\right)^3 + \left(\frac{1}{2}\right)^5 + \cdots = \frac{2}{3} \approx 0.666666667$$

따라서 $2$번 도시에서 터질 확률은 $\frac{1}{3} \approx 0.333333333$이다.

입력

  • 첫째 줄: 네 개의 정수 $N$, $M$, $P$, $Q$가 공백으로 구분되어 주어진다 ($2 \le N \le 300$; $1 \le M \le 44850$; $1 \le P \le 10^6$; $1 \le Q \le 10^6$; $P \le Q$).
  • 둘째 줄부터 $M+1$째 줄까지: 각 줄에는 두 정수 $A_j$와 $B_j$가 공백으로 구분되어 주어지며 ($1 \le A_j \le N$; $1 \le B_j \le N$; $A_j \ne B_j$), 이는 도시 $A_j$와 $B_j$를 잇는 양방향 도로를 나타낸다.

출력

$N$개의 줄을 출력한다. $i$번째 줄에는 $i$번 도시가 오염될 확률을 소수점 아래 정확히 $9$자리로 출력한다.