능력을 무작위 순서로 중복 없이 시도하다가 하나가 발동하면 멈추는 공격 한 번의 기대 피해량을 구해 유리수로 1e9+7 모듈로 출력한다.
보통7확률수학조합론동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB몬스터와 싸우는 웹게임에서 플레이어는 공격 능력 N개를 모두 장착하고 있다. 능력에는 1번부터 N번까지 번호가 붙어 있다.
i번 능력에는 발동 확률 pi와 피해량 di가 정해져 있다. i번 능력에 발동 명령을 내리면 pi의 확률로 능력이 발동해 상대에게 di만큼의 피해를 입히고, 1−pi의 확률로 발동하지 않아 아무 일도 일어나지 않는다.
공격 기회를 한 번 얻으면 다음 과정이 진행된다.
능력 N개의 발동 확률과 피해량이 주어질 때, 공격 기회 한 번에서 상대에게 주는 피해량의 기댓값을 구하라.
첫째 줄에 능력의 수 N (1≤N≤5000)이 주어진다.
다음 N개 줄 중 i번째 줄에는 두 정수 pi, di (1≤pi,di≤109)가 공백을 사이에 두고 주어진다. i번 능력은 pi/109의 확률로 발동하고, 발동하면 di만큼의 피해를 입힌다.
공격 기회 한 번에서 주는 피해량의 기댓값을 출력한다. 기댓값을 기약분수 a/b로 나타냈을 때 (a×b−1)mod(109+7)을 대신 출력한다. b−1은 109+7을 법으로 하는 b의 곱셈 역원이다. 이 문제에서 주어지는 모든 입력에 대해 이 값은 존재한다.