题号:NC264912
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
Crying 正在观看一档选秀节目。
这档节目一共有
个选手,编号为
,他们依次出场并获得评分。每个人的评分是在
内的一个
位小数,保证没有两个人的评分是相等的。
这档节目最后只能晋级分数最高的
个人,所以当每个人获得评分之后需要展示当前分数前
名的变化。
为了节目效果,节目需要知道有多少个人满足在自己获得评分之后进入当前时刻的前

名,以及每个进入前

名的人淘汰了其中的哪个人(也有可能没有淘汰别人)。
需要注意到,如果一个人在某个时刻被从前

名淘汰出来,那么 TA 显然不可能在之后重返前

名。
输入描述:
第一行,一个正整数
。
第二行,
个
中的
位小数
,依次表示每个人的分数。
对于所有数据,
,
,
恰有
位小数(末尾可能有
)且互不相同。
输出描述:
第一行,一个非负整数,表示满足在自己获得评分之后进入当前时刻的前
名的人数。
第二行,
个非负整数
。若
获得评分之后没有进入前
名或进入之后没有淘汰别人,则
;否则
表示
进入前
名之后淘汰了
。
示例1
输入
复制
7
90.0000000 90.1111111 90.2222222 90.3333333 90.4444444 90.5555555 90.6666666
说明
每个人获得评分之后都是当前所有人中评分最高的,因此每个人都能进入当前时刻的前

名。
第
个人获得评分之后前
名分别是第
个人,而第

个人获得评分之后前

名分别是第

个人,其中第

个人被挤了出去。
示例2
输入
复制
7
91.1234567 91.9260817 99.8244353 90.0000000 92.0114514 93.1919810 98.7654321