트리 평균 가중치
시간 제한1초메모리 제한256 MB
일부 차수가 자유로운 차수 수열이 주어질 때, 레이블 트리를 균등하게 무작위로 골라 가중치 u*sz(u)+v*sz(v)의 기댓값의 정수 부분을 구한다.
문제
정점 번호가 부터 까지인 레이블 트리를 생각하자.
트리의 가중치를 모든 간선 에 대한 값의 합으로 정의하자. 여기서 는 간선 를 제거한 뒤 를 포함하는 서브트리의 크기이다.
크기 인 배열 가 주어진다. 배열의 각 원소는 이상 이하의 정수이거나 이다. 번째 원소는 정점 의 차수에 대응된다. 정점 개를 가진 트리가 good하다는 것은, 인 모든 에 대해 의 차수가 와 같은 경우를 말한다. 즉, 이면 는 어떤 차수든 가질 수 있고, 그렇지 않으면 차수가 로 고정된다.
good한 트리 중 하나를 균등한 확률로 무작위로 선택하자. 이 트리의 가중치의 기댓값을 라 할 때, 의 정수 부분을 구하라.
입력
첫째 줄에 정수 이 주어진다. 이는 트리의 크기이다 ().
둘째 줄에 크기 인 배열이 주어진다. 배열의 각 원소는 이상 이하의 정수(고정된 차수)이거나 (임의의 차수)이다. 원소의 절댓값의 합이 이하임이 보장된다.
출력
의 정수 부분을 출력하라.