男乒世界杯|世界杯举办|爱大学生世界杯青春活力站|idaxuesheng.com

男乒世界杯|世界杯举办|爱大学生世界杯青春活力站|idaxuesheng.com

shape
  • Home
  • 青春赛事回顾
  • 排序精讲-1 [允许并列的排名]

排序精讲-1 [允许并列的排名]

  • 2025-07-25 08:56:15
  • admin

题面

题目描述

在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。 例如有四名选手的成绩分别为50、80、50、30分,则80分的选手为第一名,50分的两名选手均为第二名,30分的选手为第四名。 请编写一个程序,计算一个选手在这种排名方式之下的名次(分数高的选手排前面)。

输入

第一行为一个整数 NNN ,表示参赛的选手数, 1≤N≤501 \le N \le 501≤N≤50 ; 第二行为 NNN 个整数,表示每位选手的成绩; 第三行为一个整数 mmm ,表示要查询名次的选手的成绩。

输出

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

样例输入

4

50 80 50 30

50

样例输出

2

提示

1≤N≤501 \le N \le 501≤N≤50

分数都不超过100分。

思路

排序,然后编写名次,寻找所求的选手的排名。

方法 1 :系统排序

#include

using namespace std;

using ll = long long;

ll n,a[51],m;

ll now,prize,l;

bool cmp(ll a,ll b){return a>b;}

int main()

{

scanf("%lld",&n);

for(ll i=1;i<=n;i++)

scanf("%lld",a+i);

sort(a+1,a+n+1,cmp);

scanf("%lld",&m);

for(ll i=1;i<=n;i++)

{

l++;

if(a[i]!=now) now=a[i],prize+=l,l=0;

if(a[i]==m){printf("%lld\n",prize);break;}

}

return 0;

}

Previous Post
苏教授苏院长!苏炳添担任暨南大学体育学院院长
Copyright © 2088 男乒世界杯|世界杯举办|爱大学生世界杯青春活力站|idaxuesheng.com All Rights Reserved.
友情链接