luogu#P8244. [COCI2013-2014#3] KOLINJE

[COCI2013-2014#3] KOLINJE

题目描述

在一年一度的生猪屠宰会上,屠夫 Bajs 正在进行活动的最后一个环节——将自己那条屡获殊荣的火腿拿出一部分,分给参加活动的所有人。

今年的生猪屠宰会一共有 nn 个人参加,其中第 ii 个人目前已经吃了 aia_i 千克火腿。Bajs 将自己的火腿按照 b1:b2::bnb_1:b_2:\cdots:b_n 的比例分给所有人,换句话说,令 S=j=1nbjS=\sum\limits_{j=1}^nb_j,则第 ii 个人将分到总火腿重量的 biS\dfrac{b_i}S

但是,直到现在,Bajs 也没能确定他要拿出的火腿总量,因为在给每个人分完火腿并吃完以后,现场将根据每个人吃的火腿的千克数从大到小列出一个排名表(如果有两个人吃的肉的千克数相同,则按照两个人的编号从小到大排序),并宣布本次生猪屠宰会的年度人物,即排名表的第一位。虽然 Bajs 曾多次受到他人贿赂,但是他仍旧不愿改变分配的比例,并说他很诚实并且心地善良。Bajs 是个重度强迫症患者,因此他希望排名表上的人的编号从前往后依次为 1,2,,n1,2,\cdots,n。请你帮助 Bajs 确定他要拿出的火腿总量,以满足 Bajs 的要求。

输入格式

第一行输入一个整数 nn,表示参加生猪屠宰会的人数。
随后 nn 行,每行输入两个整数 ai,bia_i,b_i,分别表示第 ii 个人已经吃的火腿的千克数和在火腿的分配中所占的比重(具体见『题目描述』部分)。

输出格式

如果无论 Bajs 拿出多少火腿都不能满足要求,输出 -1

否则,输出一个实数 xx,表示 Bajs 拿出的火腿千克数。你需要保证:

  • 0x1070\leqslant x\leqslant 10^7
  • xx 的小数点后不得超过 1212 个数位。建议自行对答案四舍五入后再输出。

上面两点中若有至少一点不满足,均会被判定为 WA

如有多解,输出任意一个解即可。即你不需要保证 Bajs 拿出的火腿千克数最小

3
7 1
3 2
10 0
10.5
3
2 1
4 0
0 3
-1
5
15 4
6 7
12 5
9 6
1 7
87

提示

【样例 1 解释】

Bajs 拿出了 10.510.5 千克火腿,由于分配的比例为 1:2:01:2:0,因此三个人依次分配到 3.53.5 千克、77 千克和 00 千克火腿,最终三个人依次共吃了 10.510.5 千克、1010 千克和 1010 千克火腿。这满足 Bajs 的要求。

【数据范围与限制】

对于所有数据,2n10002\leqslant n\leqslant 10000ai,bi1060\leqslant a_i,b_i\leqslant 10^6

【题目来源】

本题来源自 COCI 2013-2014 CONTEST 3 T4 KOLINJE,按照原题数据配置,满分 120120 分。

Eason_AC 翻译整理提供。

欢迎对本题 checker 提出改进意见。