QOJ.ac

QOJ

時間限制: 1.0 s 記憶體限制: 2048 MB 總分: 100

#15940. 密码破解

统计

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

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.