2404. 攀登排行榜

1000ms 256MB 简单 二分算法
题目描述
一个游戏玩家想要爬上排行榜顶端并追踪自己的排名。该游戏使用**密集排名(Dense Ranking)**规则,其特点如下: - 分数最高的人排名第 $1$。 - 分数相同的人拥有相同的排名。 - 下一个分数较低的人的排名数字紧随其后(例如:$100, 90, 90, 80$ 的排名分别是 $1, 2, 2, 3$)。 现在给定当前排行榜上的分数序列 `ranked` 和玩家依次取得的分数序列 `player`,请计算玩家每轮游戏后的排名。
输入格式
- 第一行包含一个整数 $n$,表示排行榜上的玩家人数。 - 第二行包含 $n$ 个以空格分隔的整数 `ranked[i]`,按**从大到小**的顺序排列。 - 第三行包含一个整数 $m$,表示玩家参加的游戏轮数。 - 第四行包含 $m$ 个以空格分隔的整数 `player[j]`,按**从小到大**的顺序排列。
输出格式
- 输出 $m$ 行,每行一个整数,代表玩家在对应游戏得分后的排名。
样例 1
输入 (Input)
7
100 100 50 40 40 20 10
4
5 25 50 120
输出 (Output)
6
4
2
1
样例 2
输入 (Input)
6
100 90 90 80 75 60
5
50 65 77 90 102
输出 (Output)
6
5
4
2
1
- $1 \le n \le 2 \times 10^5$ - $1 \le m \le 2 \times 10^5$ - $0 \le ranked[i] \le 10^9$ - $0 \le player[j] \le 10^9$ - `ranked` 数组已按降序排列。 - `player` 数组已按升序排列。
自测终端 stdin → stdout
输入 stdin
CtrlShiftEnter
输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字