CF605C Freelancer's Dreams

题目描述

Mikhail the Freelancer 有两个梦想:成为一名优秀的程序员,并在莫斯科买一套公寓。为了成为优秀的程序员,他至少需要 $p$ 点经验值,而他心仪的公寓需要 $q$ 美元。为追逐梦想,Mikhail 注册了一家自由职业网站。 他有 $n$ 个不同的项目可供选择。Mikhail 已经评估过,第 $i$ 个项目每天可以为他带来 $a_i$ 点经验值和 $b_i$ 美元收入。作为自由职业者,他可以灵活安排工作时间,随时从一个项目切换到另一个项目,并获得相应的经验和金钱。Mikhail 只能专注于一个项目,任何时刻只能做一个项目。 请你求出实现梦想所需的最小天数的实数值。 例如,Mikhail 可以选择三个项目,$a_1=6$,$b_1=2$,$a_2=1$,$b_2=3$,$a_3=2$,$b_3=6$,并且 $p=20$,$q=20$。Mikhail 只需要在第一个和第三个项目分别工作 $2.5$ 天即可实现目标。即 $a_1·2.5+a_2·0+a_3·2.5=6·2.5+1·0+2·2.5=20$,$b_1·2.5+b_2·0+b_3·2.5=2·2.5+3·0+6·2.5=20$。

输入格式

第一行输入三个整数 $n$、$p$ 和 $q$($1\le n\le 100000,\,1\le p,q\le 1000000$),分别表示项目数量、所需经验值和所需金钱。 接下来的 $n$ 行中,每行输入两个整数 $a_i$ 和 $b_i$($1\le a_i,\,b_i\le 1000000$),表示第 $i$ 个项目每天获得的经验和金钱。

输出格式

输出一个实数,表示 Mikhail 实现梦想所需的最小天数。若你的答案的绝对误差或相对误差不超过 $10^{-6}$,则视为正确。 即,假设你的答案为 $a$,标准答案为 $b$,如果满足 $|a-b|/max(1,|b|)\le 10^{-6}$,则为正确答案。

说明/提示

第一个样例对应题目描述中的示例。 由 ChatGPT 5 翻译