Yharnam을 떠나며
시간 제한0.5초메모리 제한1024 MB
좌석 쌍이 N개인 버스에 쉬운 승객 G명, 내향인 I명, 외향인 E명이 이 순서대로 탑승할 때 기대 행복도를 10^9+7로 나눈 나머지로 구합니다.
문제
Eileen은 Yharnam이라는 도시의 시영 버스 회사에서 일한다. 승객이 최대한 행복하도록 늘 신경 쓰는 완벽주의자다. 그동안은 도시를 떠나려는 사람이 많지 않아서 어렵지 않았다. 그런데 최근 도시에 정체를 알 수 없는 질병이 퍼지면서 많은 시민이 떠나기로 했다. 물론 이동은 버스로 한다.
Yharnam의 버스는 좌석 쌍으로 이루어진다. 각 쌍은 창가 좌석과 통로 좌석 두 개로 구성되며, 이 둘은 서로 이웃한다. 각 좌석은 비어 있거나 차 있다. 차 있는 좌석에는 누군가 앉아 있다.
승객은 세 종류로 나뉜다.
- 내향인: 좌석을 얻고 옆자리가 비어 있으면 행복하다.
- 외향인: 좌석을 얻고 옆자리가 차 있으면 행복하다.
- 태평한 사람: 좌석만 얻으면 행복하다.
승객은 정해진 순서대로 탑승한다. 각 승객은 좌석을 고르고 앉은 뒤에야 다음 승객이 고를 수 있다. 한 번 고른 좌석은 바꿀 수 없다. 내향인은 다른 내향인 옆에 앉는 것을 최대한 피한다. 그 밖의 경우 승객은 다음과 같이 고른다.
- 행복해질 수 있는 빈 좌석이 있으면, 그중 하나를 균등한 확률로 무작위로 고른다.
- 빈 좌석은 있지만 행복해질 수 있는 좌석이 없으면, 외향인은 빈 좌석 중 하나를 균등한 확률로 무작위로 고른다. 내향인은 내향인 옆이 아닌 빈 좌석 중에서 균등한 확률로 무작위로 고르며, 모든 빈 좌석이 내향인 옆이라면 전체 빈 좌석 중에서 고른다. 태평한 사람에게는 이 경우가 일어나지 않는다.
- 빈 좌석이 없으면 승객은 불평하며 버스에서 내린다.
버스의 행복도는 출발 준비가 끝났을 때 행복한 승객의 수다. 즉 모든 승객이 탑승했거나 빈 좌석이 더 없을 때를 가리킨다.
Eileen의 현재 전략은 태평한 사람을 먼저, 그다음 외향인을, 마지막으로 내향인을 태우는 것이다. 좌석 쌍이 N개인 버스가 곧 출발한다. 태평한 사람 G명, 내향인 I명, 외향인 E명이 탑승을 기다린다. 태평한 사람, 외향인, 내향인 순서로 탑승할 때 버스의 행복도 기댓값을 구하라.
입력
입력은 본문에서 설명한 네 정수 N, G, I, E가 한 줄에 주어진다. 제약은 이다.
출력
버스 행복도의 기댓값은 기약분수 로 나타낼 수 있다. 을 의 에 대한 곱셈 역원, 즉 을 만족하는 값이라 할 때, 을 로 나눈 나머지를 출력하라.