允许并列的排名
内存限制: 256 MiB 时间限制: 1000 ms 标准输入输出 题目类型: 传统 评测方式: 文本比较
题目描述
在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。 例如有四名选手的成绩分别为50、80、50、30分,则80分的选手为第一名,50分的两名选手均为第二名,30分的选手为第四名。 请编写一个程序,计算一个选手在这种排名方式之下的名次(分数高的选手排前面)。
输入格式
第一行为一个整数 N,表示参赛的选手数,1<=N<=100; 第二行为N个整数,表示每位选手的成绩; 第三行为一个整数m,表示要查询名次的选手的成绩。
输出格式
只有一个整数,表示该选手的名次。
样例
样例输入
复制4
50 80 50 30
50
样例输出
复制2
#include <bits/stdc++.h>
using namespace std;
const int maxn = 105;
int n, m, sum;
int a[maxn], b[maxn];
int main() {
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &m);
for(int i = 1; i <= n; i++) {
b[a[i]]++;
}
for(int i = 100; i > m; i--) {
sum += b[i];
}
printf("%d", sum + 1);
return 0;
}