#M16. Setting Codeforce

Setting Codeforce

Description

你准备举办一场 codeforce 比赛。你有 nn 个题目,第 ii 个题目分值为 pip_i,预计选手平均花费时间为 tit_i。比赛时长 T=i=1ntiT=\sum_{i=1}^n t_i.

Codeforce 比赛中,越晚做出一个题,此题得分越少。具体地,设比赛的分数缩减率为实数 k(k[0,1])k\,(k\in[0,1]),则在时刻 xx 做出题目 ii 能获得的最终得分 sis_i

si=pi(1kxT)s_i=p_i\left( 1-\frac{kx}{T} \right)

Codeforce 比赛中,不需要按照题目编号顺序去做题。定义一个做题顺序为最佳做题顺序,当且仅当 i=1nsi\sum_{i=1}^n s_i 是所有做题顺序中最大的。注意这样的顺序可能有多种。

定义一个做题顺序是反常识的,当且仅当存在题目 i,ji,j 满足 pi<pj,si>sjp_i< p_j, s_i> s_j.

你很善,你希望设定一个 kk 使得所有最佳做题顺序都不是反常识的。

你很坏,你希望设定满足条件的 kk 中最大的那个。

Format

Input

第一行一个正整数 n(1n105)n\,(1\leq n\leq 10^5).

随后 nn 行,每行两个正整数 pi,ti(1pi,ti105)p_i,t_i\,(1\leq p_i,t_i \leq 10^5).

Output

一个实数 kk. 对小数位数没有特别要求,你的答案 kk 与标准答案 k0k_0 的绝对误差 kk0|k-k_0| 不超过 10610^{-6} 即视为正确。

Samples

2
10 10
20 1
1

无论 kk 取何值都不存在反常识最佳做题顺序。

3
3 1
4 1
10 8
0.625

k=0.7k=0.7 为例,最佳做题顺序为 2,1,32,1,3,此顺序下有 s1=2.58,s2=3.72,s3=3s_1=2.58,s_2=3.72,s_3=3,题目 2,32,3 满足 p2<p3,s2>s3p_2< p_3,s_2 >s_3.

Limitation

2s, 256MiB.

本题采用捆绑测试子任务依赖

捆绑测试:多个数据点捆绑在一个子任务(subtask)中,一个子任务的所有数据均 AC,本子任务才 AC,否则本子任务不得分。

子任务依赖:有依赖的子任务,必须先通过其依赖的子任务,才会予以测试本子任务的测试点。若其依赖的子任务有未通过或被取消评测的,取消此子任务的评测,且此子任务不得分。

子任务编号 nn\leq 特殊性质 子任务依赖 分数
1 88 20
2 10310^3 piti\frac{p_i}{t_i} 两两不同 15
3 1,2 20
4 10510^5 piti\frac{p_i}{t_i} 两两不同 2 15
5 3,4 30