P16992 [NWERC 2018] 充气 / Inflation
题目背景
译自 [NWERC 2018](https://2018.nwerc.eu/) I 题。
题目描述
对于 NWERC 2018,组织者在气球上做了一件相当特别的事。他们没有购买大小相同的气球,而是购买了从 $1$ 到 $n$ 的每一种整数大小的气球各一个。大小为 $s$ 的气球容量为 $s$ 分升。
为了避免手动给气球充气,组织者还买了 $n$ 个氦气罐。每个气罐只能用于给一个气球充气,并且必须把里面的气体全部充入该气球(不能在气罐用完之前把它从气球上断开)。
不幸的是,这些气罐是在车库旧货出售中买来的,里面的氦气量可能不同,有些甚至可能是空的!为了尽量利用这种麻烦情况,必须聪明地把气罐和气球配对。
组织者希望把所有气罐分配给不同的气球,使得充得最少的那个气球(相对于自身容量)中的氦气比例尽可能大。这个最大的最小比例是多少?
如果气球被充入超过自身容量的气体,就会爆炸。爆炸会令人难过,必须避免。
输入格式
输入包括:
- 一行一个整数 $n$($1\le n\le 2\cdot 10^5$),表示气球和气罐的数量。
- 一行 $n$ 个整数 $c_1,\ldots,c_n$(对每个 $i$,$0\le c_i\le n$),表示各气罐中的氦气量,单位为分升。
输出格式
如果可以给所有气球充气且不发生爆炸,输出最大的比例 $f$,使得每个气球都至少被充入其容量的 $f$。否则,输出 `impossible`。
你的答案允许绝对误差或相对误差不超过 $10^{-6}$。
说明/提示
【数据规模与约定】
具体限制见输入格式。