2356:允许并列的排名

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:1
命题人:
提交:5 解决:4

题目描述

 

在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。

    例如有四名选手的成绩分别为50805030分,则80分的选手为第一名,50分的两名选手均为第二名,30分的选手为第四名。

    请编写一个程序,计算一个选手在这种排名方式之下的名次(分数高的选手排前面)。

输入

 

第一行为一个整数,表示参赛的选手数,,第二行为个整数,表示每位选手的成绩,第三行为一个整数,表示要查询名次的选手的成绩。

输出

只有一个整数,表示该选手的名次。

样例输入

4
50 80 50 30
50

样例输出

2

提示

加入想要针对a[1] - a[n]排序
那么sort(a + 1, a + n + 1); 这样能取得一个从小到大排序后的顺序 a[1] <= a[2] <= 。。。 << a[n];


那么我怎么从大到小排序呢?
这里要写一个bool函数:

bool cmp(int a, int b) { //这个模板一定要会写嗷
    return a > b;
}


int main() {
    
    前面一堆代码;
    sort(a + 1, a + n + 1, cmp); // 按照cmp规则排序
    for(int i = 1; i <= n; i++) // a[1] 最大  a[n] 最小
        。。。。。
    return 0;
}