Photo by christiaan colen cc by-sa 2.0
我们都知道,除非用户足够自律、使用难以猜测的密码,否则密码并不是非常安全。但大多数用户并没有那么小心,而是乐于使用诸如“123456”之类的密码。事实上,存在一些常用密码列表,黑客可以使用它们来破解系统,而且这些密码往往很有效。
你已经使用此类列表进行了大量的黑客攻击,并且对列表中每个密码是正确密码的概率有了很好的了解(你对使用“123456”作为密码的人数感到非常惊讶)。现在你有一个新的账户需要破解,你决定逐个尝试列表中的每个密码,直到找到正确的密码。你完全确定你要破解的账户所使用的密码就在给定的列表中。
假设你按照最优的顺序尝试这些密码,找到正确密码的期望尝试次数是多少?
输入格式
输入的第一行包含一个正整数 $N$,表示列表中的密码数量。
接下来的 $N$ 行中,每行给出一个密码,后跟一个空格,然后是该密码为正确密码的概率。每个密码都是一个非空字符串,仅由字母和数字组成,长度最多为 12 个字符。每个概率都是一个保留 4 位小数的实数。你可以假设列表中最多有 500 个密码,且所有概率之和等于 1。列表中没有两个相同的密码。
输出格式
在单行中输出使用最优顺序找到正确密码的期望尝试次数。与正确答案误差在 $10^{-4}$ 以内的答案将被接受。
样例
样例输入 1
2 123456 0.6666 qwerty 0.3334
样例输出 1
1.3334
样例输入 2
3 qwerty 0.5432 123456 0.3334 password 0.1234
样例输出 2
1.5802