#6767. 气球充气 inflation

气球充气 inflation

题目描述

在 NWERC 2018 中,组织者对气球做了一些特别的安排。

他们没有购买大小相同的气球,而是购买了大小从 11nn 的每一种整数大小的气球各一个。大小为 ss 的气球容量为 ss 分升。

为了避免手动给气球充气,组织者还购买了 nn 个氦气罐。每个气罐只能用于给一个气球充气,并且必须把气罐中的氦气全部充入这个气球中。也就是说,在气罐用完之前,不能把它从气球上取下来。

不幸的是,这些气罐是在旧货市场买来的,里面的氦气量可能各不相同,有些甚至可能是空的。为了尽可能利用这些气罐,组织者必须聪明地将气罐和气球进行配对。

组织者希望把所有气罐分别分配给不同的气球,使得所有气球中,充气比例最低的那个气球,它的充气比例尽可能大。

请你求出这个最大的最小充气比例。

注意:如果气球被充入超过自身容量的氦气,它就会爆炸。必须避免任何气球爆炸。

约定和数据范围

对于全部数据:

1n2×1051 \leq n \leq 2 \times 10^5

0cin0 \leq c_i \leq n

格式

输入格式

共两行。

第一行,一个整数 nn,表示气球和气罐的数量。

第二行,nn 个整数 c1,c2,,cnc_1, c_2, \dots, c_n,其中 cic_i 表示第 ii 个气罐中氦气的数量,单位为分升。

输出格式

如果可以在不让任何气球爆炸的情况下完成分配,输出一个实数 ff,表示能够保证所有气球至少被充到自身容量的 ff 倍时,ff 的最大值。

如果无论如何分配都会导致某个气球爆炸,输出 -1。 答案的绝对误差或相对误差不超过 10610^{-6} 即可。

样例

6
6 1 3 2 2 3
0.6
2
2 2
-1
5
4 0 2 1 2
0

样例解释

样例1解释:

气罐的氦气量为 [6,1,3,2,2,3][6,1,3,2,2,3],气球容量为 [1,2,3,4,5,6][1,2,3,4,5,6]。 一种最优分配方式是:

  • 气罐 1 给气球 6:6/6=1.06/6=1.0
  • 气罐 3 给气球 5:3/5=0.63/5=0.6
  • 气罐 6 给气球 4:3/4=0.753/4=0.75
  • 气罐 4 给气球 3:2/30.66672/3≈0.6667
  • 气罐 5 给气球 2:2/2=1.02/2=1.0
  • 气罐 2 给气球 1:1/1=1.01/1=1.0 此时所有气球中最低的充气比例为 0.60.6,这是能达到的最大值。

样例2解释:

气罐的氦气量为 [2,2][2,2],气球容量为 [1,2][1,2]。 无论如何分配,都必须有一个 22 分升的气罐充入容量为 11 的气球中,导致气球爆炸,因此输出 -1

样例3解释:

气罐的氦气量为 [4,0,2,1,2][4,0,2,1,2],气球容量为 [1,2,3,4,5][1,2,3,4,5]。 无论如何分配,都会有一个 00 分升的气罐充入某个气球,导致该气球的充气比例为 00,因此输出 00