测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70712. 小X算排名

编程题 提高
知识点

题目描述

X 很关心自己在学校的表现。

班主任手上有一本“个人得分记录本”,如果一位同学表现好就会加分,表现差则会扣分。学期结束,每位同学都得知了自己的个人得分。小 X 想知道其他同学情况如何,但由于排名不公布,他只好一个个去问班里的其他同学。

现在,小 X 手上有班里共 N 位同学的个人得分,他想知道每位同学的排名 (得分相同则排名相同,见样例),可并不知道该如何计算,希望你帮帮他。

输入格式

第一行包含一个整数 N

接下来 N 行,第 i 行包含一个整数 A_i,表示第 i 位同学的得分。

输出格式

N 行,第 i 行包含一个整数,表示第 i 位同学的排名。

输入输出样例

输入 #1
5
95
100
99
99
96
输出 #1
5
1
2
2
4

说明/提示

## 思路

在有序范围上二分:根据 check(mid) 决定向左或向右缩小区间。

## 步骤

1. 确定答案上下界。
2. 二分 mid 并用题意检验。
3. 输出最终边界对应的答案。