QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 128 MB Total points: 100

#790. Sure Bet

Statistics

运气是博彩的一个基本组成部分。有些人通过对投注对象有深入的了解来提高他们的胜算和收益。我们将采取一种不同的方法。

不同的博彩公司对同一个结果提供不同的赔率(odds 或 quotas)。(赔率为 $x$ 意味着如果你投注 1 欧元并准确预测了结果,你将收回 $x$ 欧元。如果你预测错误,你当然什么也得不到。注意,无论结果如何,你都要支付 1 欧元的投注金。)如果通过巧妙地进行多次投注,从而确保获得利润,会怎样呢?你希望使这种保证利润尽可能大。

我们想要投注的赛事有两个可能的结果。有 $n$ 家博彩公司提供不同的赔率。设第 $i$ 家博彩公司对第一个结果提供的赔率为 $a_i$,对第二个结果提供的赔率为 $b_i$。你可以对所提供的赔率的任意子集进行投注。你甚至可以在同一家博彩公司对两个结果都进行投注。然而,所有投注必须恰好为 1 欧元,并且你不能在同一家博彩公司对同一个结果进行多次投注。

如果出现第一个结果,你将从所有你投注了第一个结果的博彩公司 $i$ 那里收到 $a_i$ 欧元。同样,如果出现第二个结果,你将从所有符合条件的博彩公司那里收到 $b_i$ 欧元。当然,在这两种情况下,你都已经为你所做的每一笔投注支付了 1 欧元。

如果你以最优方式进行投注,最大的保证利润(即无论结果如何)是多少?

输入格式

第一行包含博彩公司的数量 $n$。接下来的 $n$ 行描述了每家博彩公司提供的赔率,包含两个用空格分隔的实数 $a_i$ 和 $b_i$ —— 分别为第 $i$ 家博彩公司对第一个和第二个结果提供的赔率。赔率最多给出 4 位小数。

数据范围

  • $1.0 \le a_i, b_i \le 1000.0$
  • $1 \le n \le 100\,000$

子任务

  • 子任务 1(20 分):$n \le 10$
  • 子任务 2(40 分):$n \le 1\,000$
  • 子任务 3(40 分):无附加限制

输出格式

输出最大保证利润,四舍五入保留恰好 4 位小数。

以下是在各种语言中打印浮点数的命令:

  • C 和 C++: printf("%.4lf",(double)x);
  • Java: System.out.printf("%.4lf",x);
  • Pascal: writeln(x:0:4);
  • Python 3: print("%.4lf"%x)
  • C#: Console.WriteLine(String.Format("0:0.0000",x));

样例

输入 1

4
1.4 3.7
1.2 2
1.6 1.4
1.9 1.5

输出 1

0.5000

说明 1

最优投注策略包括:在第一家博彩公司投注第二个结果,并在第三家和第四家博彩公司投注第一个结果。如果出现第一个结果,我们将获得 $1.6 + 1.9 - 3 = 0.5$;如果出现第二个结果,我们将获得 $3.7 - 3 = 0.7$。因此,无论结果如何,我们都能保证获得 0.5 欧元的利润。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.